Hi Now I'm trying to digging the design kit.
But I cant' find the BOOT relative port or signal and REMAP signal in the design kit.
As I know usually BOOT used such as the following picture
But I can't find any relative interface in the design kit, If I want to test that BOOT signal in the design kit, what am I supposed to do ?
ans one more i have a question.
I came across the REMAP signal stuck as '1', never changed, is this normal? how to understand the REMAP signal don't update in the design kit?
For most simple devices, it always boot from the same memory space and there is no need to use boot/remap pins. This is very common.
Some microcontrollers provide the boot configuration pin to allow system designer to select which program ROM the system boot up from. Effective it either
1. remap a small memory region starting at address 0x00000000 from one memory space to a different memory space
or
2. a boot loader running from address 0x00000000 detect the status of this pin to decide if it should branch into an application code space as normal or branch into another address space.
In the Cortex-M System Design Kit we have only implement one application ROM area. Although there is an option to have a boot loader ROM, the boot loader code just execute the same application image so there isn't a need to have a boot configuration pin. However, if you extend your system to have multiple application ROM, you could add a boot configuration pin at the system level to achieve the same function.
To do this, typically
- a register is needed to capture the status of the boot configuration pin at reset,
- the status of this register could be read by boot loader to decide which application program space to jump into, or
- map select boot into address 0x00000000 (by controlling the behaviour of address decoder.
regards,
Joseph
Now I'm trying to understand about "In the Cortex-M System Design Kit we have only implement one application ROM area. Although there is an option to have a boot loader ROM, the boot loader code just execute the same application image so there isn't a need to have a boot configuration pin"
The reason of the question is that I can see the REMAP =1 between u_cmsdk_mcu_sysctrl(REMAP) and u_addr_decode(remap_ctrl). the remap_ctrl of the u_cmsdk_mcu_sysctrl is set as 1 . so I thought that the REMAP has something special function such as something decision boot mode and normal mode.
and I found some comments as the below
// If Boot loader is not present (BOOT_LOADER_PRESENT==0), // boot_hsel always 0. // Otherwise select if address = 0x0100xxxx or when remap_ctrl // is 1, and address = 0x0000xxxx
and I can see the REMAP = 1, does REMAP=1 mean the same as boot loader boot mode not normal mode?
what if so, how do I turn off the REMAP option in simulation?
Hi there,
The boot ROM option can be disabled by editing cmsdk_mcu_defs.v. By setting
`define ARM_CMSDK_BOOT_MEM_TYPE `AHB_ROM_NONE
The boot ROM will not be presented and the remap_ctrl signal is ignored (In such case BOOT_LOADER_PRESENT is 0). You can see how this is managed by looking at the generation of boot_hsel and flash_hsel.
The design of the example system in CMSDK need to allow the Cortex-M0 processor (no Vector Table relocation support) to be used with a boot ROM. So at starting, remap_ctrl is 1, and 0x00000000 to 0x0000FFFF map to boot ROM (if implemented). The boot ROM is also accessible from 0x01000000.
After the boot ROM program started, we can execute the boot ROM program from 0x01000000. At this time, we can switch remap_ctrl to 0 (by software), which then map 0x00000000 to 0x0000FFFF to the user ROM/flash.
Thanks for letting me know that .