67724


Spresense Arduino v2.0.0にて、メインコアアプリケーションが使用するメモリサイズをArduino
IDEメニューから変更できるようになる拡張機能が追加されていました。実際に動作確認を行ってみましたが、768KBより大きいメモリサイズを指定するとエラーが発生します。以下実際の実行手順です。

1.「ツール」→「ボード」→「ボードマネージャ」  
"Spresense Reference Board"のバージョンを2.0.0に更新。  
  
  
2.「ツール」→「ボード」 "Spresense"を選択  
「ツール」→「書き込み装置」 "Spresense Firmware Updater"を選択  
ブートローダの書き込み実行。  
  
  
3.Lチカサンプルを書き込み。

[code]

    void setup() {
        pinMode(LED0, OUTPUT);
        pinMode(LED1, OUTPUT);
        pinMode(LED2, OUTPUT);
        pinMode(LED3, OUTPUT);
    }
    
    void loop() {
        digitalWrite(LED0, HIGH);
        delay(100);
        digitalWrite(LED1, HIGH);
        delay(100);
        digitalWrite(LED2, HIGH);
        delay(100);
        digitalWrite(LED3, HIGH);
        delay(1000);
    
        digitalWrite(LED0, LOW);
        delay(100);
        digitalWrite(LED1, LOW);
        delay(100);
        digitalWrite(LED2, LOW);
        delay(100);
        digitalWrite(LED3, LOW);
        delay(1000);
    }
    
[/code]

「ツール」→「memory」  
・"640KB" → 点灯確認  
・"768KB" → 点灯確認  
・"896KB以降" → エラー

以下、896KB設定時の実際のエラーです。

[code]

    up_hardfault: PANIC!!! Hard fault: 40000000
    up_assert: Assertion failed at file:armv7-m/up_hardfault.c line: 148 task: AppBringUp
    up_registerdump: R0: 0012d9c0 0d032638 0d0277f4 0d15fff8 0d0324a8 00000190 0d0276e0 0d01fe53
    up_registerdump: R8: 00000064 00002000 00000000 00000000 00000001 0d02d1c0 0d00e2e9 0d00e316
    up_registerdump: xPSR: 01000000 BASEPRI: 000000e0 CONTROL: 00000000
    up_registerdump: EXC_RETURN: ffffffe9
    up_dumpstate: sp:     0d024fa8
    up_dumpstate: IRQ stack:
    up_dumpstate:   base: 0d025000
    up_dumpstate:   size: 00000800
    up_dumpstate:   used: 00000148
    up_stackdump: 0d024fa0: 000007e4 0d00295f 000000e0 00000000 00000000 00000001 0d02d1c0 0d00e2e9
    up_stackdump: 0d024fc0: 0d00e316 0d024fd0 0d002b83 00000003 00000000 0d002b8b 0d002b69 0d00c83b
    up_stackdump: 0d024fe0: 000000e0 0d00962d 000000e0 0d02d0ec 00000190 0d0276e0 0d01fe53 0d002b1b
    up_dumpstate: sp:     0d02d1c0
    up_dumpstate: User stack:
    up_dumpstate:   base: 0d02d230
    up_dumpstate:   size: 000007e4
    up_dumpstate:   used: 00000288
    up_stackdump: 0d02d1c0: 00000000 00000180 00000000 0d00e56b 00002000 00000000 00000000 0d004705
    up_stackdump: 0d02d1e0: 0d01fe53 00000000 00000064 00000000 00000000 00000000 00000000 00000000
    up_stackdump: 0d02d200: 00000000 0d0047a3 0d00043d 00000000 00000000 0d004165 00000000 0d02d234
    up_stackdump: 0d02d220: 00000101 0d004b0b 00000000 00000000 deadbeef 0d02d23c 00000000 42707041
    up_taskdump: Idle Task: PID=0 Stack Used=0 of 0
    up_taskdump: hpwork: PID=1 Stack Used=576 of 2028
    up_taskdump: lpwork: PID=2 Stack Used=352 of 2028
    up_taskdump: lpwork: PID=3 Stack Used=352 of 2028
    up_taskdump: lpwork: PID=4 Stack Used=352 of 2028
    up_taskdump: AppBringUp: PID=5 Stack Used=648 of 2020
    up_taskdump: cxd56_pm_task: PID=6 Stack Used=352 of 996
    up_taskdump: <pthread>: PID=7 Stack Used=312 of 1020
    
[/code]

Spresense recovery tool等を使って工場出荷時状態にリセットをする等  
試してみましたが解決には至っていません。ご存知の方いらしたら  
ご教授願いたいです。


CC BY-SA 4.0
2020-06-15T06:19:37.030
67675
2020-06-16T11:38:09.067
2020-06-15T06:55:10.730
2238
40664
question
spresense arduino
MainCore使用メモリサイズを768KBより大きいメモリサイズに設定するとエラーが出る


ソニーのSPRESENSEサポート担当です。

ご指摘ありがとうございます。

Spresense Arduino v2.0.0で対応しましたメモリサイズ変更に不具合がありました。  
本件につきましては至急修正版をリリースするように致します。

ご不便をお掛けし申し訳ございません。

SPRESENSEサポートチーム


CC BY-SA 4.0
2020-06-16T02:20:57.083
67703
2020-06-16T02:20:57.083
29520
67675
answer


ソニーのSPRESENSEサポート担当です。

ご指摘いただいた問題を修正したパッケージを先ほどリリース致しました。  
ボードマネージャよりv2.0.1のパッケージへアップデートしてお試しください。

今後ともSPRESENSEをどうぞよろしくお願いいたします。  
SPRESENSEサポートチーム


CC BY-SA 4.0
2020-06-16T11:38:09.067
67724
2020-06-16T11:38:09.067
29520
67675
answer