のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

STM32CubeIde HardFault その16 周辺のnewlibのソース

newlib/newlib/libc/stdio/findfp.c __sinit() /* * __sinit() is called whenever stdio's internal variables must be set up. */ void __sinit (struct _reent *s) { __sinit_lock_acquire (); if (s->__sdidinit) { __sinit_lock_release (); return; } …

STM32CubeIde HardFault その15 0x20030001

0x20030001

STM32CubeIde HardFault その14 Stackの内容

Idle Task IDLE Task Tmr Svc tmr svc myTask01 myTask01 myTask02 myTask02

STM32CubeIde HardFault その13

HardFaultになるまで、の経路。 異なるアドレスで起こっている。 原因が、よくわからない。 StartTask02>printf startTask02 puts puts puts_r puts_r _puts_r>sinit sinit _puts_r>sinit>sfp __sfp _puts_r>sinit>sfp>sfmoreglue sfmoreglue puts_r>sinit>s…

STM32CubeIde HardFault その12

STM32CubeIde HardFault その11

sfpの中で死んでるのかな?

STM32CubeIde HardFault その10 STM32CubeIde > "Hard Fault" >"Instruction Stepping Mode"

Instruction Stepping Modeを有効にすると、 Disassemblyの画面で、1命令づつ、実行できるようになる。

STM32CubeIde HardFault その9 impreciserr newlib hard fault

LR pc hiro99ma.blogspot.com community.st.com

Nucleo-F429ZI-Os3.elf section `._user_heap_stack' will not fit in region `RAM'

arm-none-eabi-gcc -o "Nucleo-F429ZI-Os3.elf" @"objects.list" -mcpu=cortex-m4 -T"C:\Users\m_fujii\Documents\0500_BitBucket\0600_STM32CubeIde \ws_1.0.1\Nucleo-F429ZI-Os3 \STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="Nucleo-F429ZI-Os…

sinit newlib

__sinit github.com

STM32CubeIde HardFault その8 hardfault

prvPortStartFirstTaskの中で、hardFaultになっているのかな? hardFault vPortSVCHandlerにブレークポイントを置く。 vPortSVCHandler ステップインすると、MyTask2の先頭へいく。 MyTask2 ステップイン vPortRaiseBASEPRI ステップイン printf ステップイン…

librdimon.aの場所

librdimon.a

elfのmap

このフォルダにライブラリの実体がある。 c:/st/stm32cubeide_1.0.1/stm32cubeide/plugins/ com.st.stm32cube.ide.mcu.externaltools. gnu-tools-for-stm32.7-2018-q2-update.win32_1.0.0.201904181610/ tools/bin/../lib/gcc/arm-none-eabi/7.3.1/ ../../..…

STM32CubeIde HardFault その7 _puts_r

0x80041f0 _sinit puts_r 1づれているようにみえる。 なんでだろう? 080041f1 sinit elfのlistを見ると、偶数番地に__sinitがある。 080041f0 elf.list 080041f0 <__sinit>: 80041f0: 6983 ldr r3, [r0, #24] 80041f2: b510 push {r4, lr} 80041f4: 4604 mov r4, r0 </__sinit>…

timer task stack size 256

timer task 固定サイズ 固定サイズ

STM32CubeIde HardFault その6 STM32CubeIde HardFault_Handler prvPortStartFirstTask

prvPortStartFirstTask

STM32CubeIde HardFault その5 error: expected expression before ')' token

compile error ../Src/main.c: In function 'main': ../Src/main.c:40:26: error: expected expression before ')' token printf(fmt, __VA_ARGS__); \ ^ ../Src/main.c:141:4: note: in expansion of macro 'safe_printf' safe_printf("Main:Hello World\n"…

STM32CubeIde HardFault その4 stack over flow check

stackoverflow stackoverflow stackovf cmsis_os2.c

NVIC

NVIC

When FreeRTOS is used, it is strongly recommended to use a HAL timebase source other than the Systick.

warning When FreeRTOS is used, it is strongly recommended to use a HAL timebase source other than the Systick. The HAL timebase source can be changed from the Pinout tab under SYS

STM32F429ZI semihostingの設定 まとめ

main.c extern void initialise_monitor_handles(void); initialise_monitor_handles(); settings "Libraries" rdimon "--specs=rdimon.specs" Debug config ST-Link(OpenOCD) "monitor arm semihosting enable" syscall.c unused yuqlid.hatenablog.com os…

vcom

vcom vcom

STM32CubeIde F401RE FreeRTOSなし SemiHosting

FreeRTOSなしのとき、SemiHostingでprintfが表示された。 capture Open On-Chip Debugger 0.10.0+dev-00021-g524e8c8 (2019-06-12-13:13) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html srst_only separate sr…

STM32CubeIde HardFault その3 vTaskSwitchContext

vTaskSwitchContext asm c

STM32CubeIde HardFault その2 printf

hello 0x08009af0に、putsがある。 puts

STM32CubeIdeで、SemiHostingは、ST-Link(OpenOCD)

Debug ProbeをST-LINK(OpenOCD)にしたら、動くようになった。 openocd yukblog.net 赤い文字で出るようになる。 Open On-Chip Debugger 0.10.0+dev-00021-g524e8c8 (2019-06-12-13:13) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/…

STM32CubeIde GDB Hardware Debuggingの場合、うまくいかない

GDB Hardware Debuggingの場合、エラーで終了してしまう。 うまくいかない。 debugger ”use remote target"にチェックを入れないと、エラーすらでない。 以下のエラーになる。 Failed to execute MI command: target remote localhost:61234 エラーの詳細は…

bkpt 0x00ab

bkpt 0x00ab

STM32CubeIde Debug monitor arm semihosting enable

monitor arm https://yukblog.net/stm32cubeide-printf-semihosting/ failed ccwo.hatenablog.jp Error in final launch sequence: Failed to execute MI command: monitor arm semihosting enable Error message from debugger back end: Protocol error wi…

STM32CubeIde "--specs=rdimon.specs"を追加したら、”multiple definition”のエラーになった。

"--specs=rdimon.specs"を追加したら、multiple definitionのエラーになった。 arm-none-eabi-gcc -o "Nucleo-F429ZI.elf" @"objects.list" -lrdimon -mcpu=cortex-m4 -T"C:\Users\m_fujii\Documents\0500_BitBucket\0600_STM32CubeIde\ws_1.0.1\Nucleo-F429…