cortex m3 - what does system memory work actually in STM32F103 on ARM memory map? -


now i'm trying understand boot sequence of stm32f103x. know based on cortex-m3. trying find concept of boot such stm32f103x.. can't find anywhere in document can find boot sequence stm32 on arm memory map?

because want know system memory work actually?

currently. i'm trying understand system memory in cortex m3 address map. examples said "there 2 area such 0x08000000 flash memory area , 0x1ffff000 system memory area.

and understood flash memory area saving execute file , system memory saving bootloader.

for example, can make 1 hex binary file build using startup_cmsdk_cm3.s , startup_cmsdk_cm3.c in keil uvision. put 1 hex binary file stm32 mcu using jteg 0x0800_0000 of flash memory area not system memory area.

i'm not sure difference between system memory flash memory , want know "what system memory , area work?"

if read arm documents see vector table , contents are. bare minimum @ address 0x00000004 need (thumb) address of reset handler.

if read stm32 documents see based on boot pins various things happen, typical use case 0x08000000 flash contains program, mapped 0x00000000. can choose link 0x00000000 or can choose link 0x08000000 folks do, (thumb) address @ offset 0x00000004 (and 0x00000008 , on) point somewhere in 0x08000000.

memory read write stuff, instructions, .text, read dont need write, , microcontroller need application in non volatile storage, , designed run code out of flash (these days isnt idea except purpose built flashes these).

so program .text, , other read data goes in flash. .data have kept in flash bootstrap copies ram , bootstrap zeros .bss, once booted , entry point in c (often main() arbitrary function name) typical use case program in read flash , data in read/write ram. should be.

granted programmer responsible of above, vector table, bootstrap, linking, writing program things.

the cortex-m boot scheme typical, 2 common run @ address, or have vector table of addresses handlers live. full sized arms run address, cortex-m's list of addresses, vector table.

when read on nxp or atmel samd or other implementations of cortex-ms find place flash in boot space should, may in different ways. have factory bootloaders can invoked in various ways , core doesnt magically change map factory bootloader 0 address space of cortex-m.

its there in arm , st , nxp , atmel , other documents.

edit

system memory data, read/write items, variables, data structures change, etc. if choose not use built in bootloader, can choose write own part of application , bootloader welcome , in fact pretty have download new program ram, doesnt mean have run there (you can despite word harvard being tossed around) or more use holding area burn flash. typical purpose of microcontroller run firmware on flash , use sram read/write data may change. clock radios, toasters, remote controls, , myriad of other things.


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -