2019-07-01から1ヶ月間の記事一覧
www.touchgfx.com 裏で、Freetype touchgfx.zendesk.com
vcom
prvPortStartFirstTaskで、svc 0のあと、HardFaultになる。 prvPortStartFirstTask static void prvPortStartFirstTask( void ) { __asm volatile( " ldr r0, =0xE000ED08 \n" /* Use the NVIC offset register to locate the stack. */ " ldr r0, [r0] \n" …
Timebase SourceをTIM14 Timebase SourceをTIM14 Timebase code generation xPortSysTickHandlerが呼ばれるようになった。 void xPortSysTickHandler( void ) { /* The SysTick runs at the lowest interrupt priority, so when this interrupt executes all…
port.c void xPortSysTickHandler( void ) { /* The SysTick runs at the lowest interrupt priority, so when this interrupt executes all interrupts must be unmasked. There is therefore no need to save and then restore the interrupt mask value a…
#if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) ) { if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( UBaseType_t ) 1 ) { taskYIELD(); } else { mtCOVERAGE_TEST_MARKER(); } } #endif /* ( (…
Stackをわざと、必要な容量より小さい、128に設定して動作させてみた。 myTask01のスタック領域が壊れている。 HardFaultになった。 StaStack破壊のときの例 必要な容量 タイマタスクのスタックサイズが200のとき、myTask01のTCBが壊れている。 mytask01のス…
STM32F429ZITX_FLASH.ld STACKの最後に+1した領域に、値を書きにいっているため、HardFaultになっているのでは?と思った。 リンカのファイルを以下のように変更して、最後の位置+1に書き込んでも問題ないようにしてみた。 すると、HardFaultがでなくな…
configUSE_NEWLIB_REENTRANT mcuoneclipse.com
cantwriteの中で、__swsetup_rを呼んでいる。 /* Return true and set errno and stream error flag iff the given FILE cannot be written now. */ #define cantwrite(ptr, fp) \ ((((fp)->_flags & __SWR) == 0 || (fp)->_bf._base == NULL) && \ __swsetu…
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; } …
0x20030001
Idle Task IDLE Task Tmr Svc tmr svc myTask01 myTask01 myTask02 myTask02
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…
sfpの中で死んでるのかな?
Instruction Stepping Modeを有効にすると、 Disassemblyの画面で、1命令づつ、実行できるようになる。
LR pc hiro99ma.blogspot.com community.st.com
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 github.com
prvPortStartFirstTaskの中で、hardFaultになっているのかな? hardFault vPortSVCHandlerにブレークポイントを置く。 vPortSVCHandler ステップインすると、MyTask2の先頭へいく。 MyTask2 ステップイン vPortRaiseBASEPRI ステップイン printf ステップイン…
librdimon.a
このフォルダにライブラリの実体がある。 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/ ../../..…
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 固定サイズ 固定サイズ
prvPortStartFirstTask
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"…
stackoverflow stackoverflow stackovf cmsis_os2.c
NVIC
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