2012-05-18 12:45 PM
Hello --
We're trying to bring up FreeRTOS on our STM32F103c8 micro. In the function vPortStartFirstTask (file portasm.s) there is an SVC call as follows: cpsie i 0x8002efe: 0xb662 CPSIE i svc 0 0x8002f00: 0xdf00 SVC &sharp0x0 0x8002f02: 0x0000 MOVS r0, r0 _?0: 0x8002f04: 0x200002e8 DC32 pxCurrentTCB _?1: 0x8002f08: 0xe000ed08 DC32 VTOR Immediately after the last assembler statement I end up in the HardFault_Handler. I know what pxCurrentTCB and VTOR are, but I can not find what the DC32 means. Thank you Mark #stm322012-05-18 12:54 PM
Define Constant
Keil/Realview uses DCD__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
...
ARM can't load large immediate constants, the assembler places them in ''Literal Pools'' usually past the end of a subroutine, and accesses them with LDR PC Relative instructions.