いろいろなテクニック.Nucleo と DISCO-F746 用.

Dependencies:   Array_Matrix mbed

MyNew.hpp

Committer:
MikamiUitOpen
Date:
2017-10-15
Revision:
0:bb939e0bc6e2
Child:
1:bbb9f0c3e523

File content as of revision 0:bb939e0bc6e2:

//------------------------------------------------------------------------------
//  See "https://developer.mbed.org/users/okini3939/notebook/mbed256_memory/"
//
//  このプログラムは,STM 社のマイコンを使用し,mbed ライブラリが
//  リビジョン 153 の場合に有効なことを確認している.それ以外は未確認
//
//  new 演算子でメモリ割り当てに失敗した場合はターミナルに
//  "Operator new[] out of memory" というメッセージが表示される
//
//  割り当てに失敗した段階で上記のメッセージが出てプログラムが終了するので,
//  if 文以下は実行されない.
//
//  set_new_handler() は働いていないようである
//
//  2017/10/15, Copyright (c) 2017 MIKAMI, Naoki
//------------------------------------------------------------------------------
//#include <new>    // set_new_handler() を使う場合でも不要

/*
void MemoryAssignError()
{
    printf("Can't allocate to memory!\r\n");
    while(true);
}
*/

void MyNew()
{
//    set_new_handler(MemoryAssignError);
    
    uint8_t *ptr;
//    ptr = new uint8_t[100000];      // OK
    ptr = new uint8_t[1000000];     // 大きすぎて割り当てに失敗する
    
    if (ptr == NULL)
        printf("\r\nMemory allocation error\r\n");
    else
    {
        printf("\r\nptr = 0x%08x\r\n", ptr);
        delete[] ptr;
        printf("正常に終了.\r\n");
    }
}