我现在在做SHARP的 79524.我现在手上有开发板\仿真器.SHARP给了点资料.有Startup文件.
里面包含了
simple.c(很简单就个_main点亮LED),
lh79524_startup.s(我看了下应该是启动函数里面主要实现了异常向量管理和栈分配进入复位模式执行,然后跳转c_entry和_main),
lh79524_startup.i(就是对于.S的数据定义相当于头文件吧?),
evb79524_startup.c 代码如下
void c_entry(void) { INT_32 length; UNS_32* bss_base; /* Copy Flash code to SDRAM */ length = ((UNS_32)&Image$$ER_RO$$Length + (UNS_32)&Image$$ER_RW$$Length); SMA_copylongs(length, (UNS_32 *)0, (UNS_32 *)SDRAM_PHYS_BASE); /* remap SDRAM at zero */ RCPC->remap = RCPC_REMAP_DCS0MEM0; bss_base = (UNS_32 *)&Image$$ER_ZI$$Base; length = (UNS_32)&Image$$ER_ZI$$ZI$$Length; /* zero out BSS section */ while(length > 0) { *bss_base++ = 0; length -=4; } /* We should be running out of SDRAM memory at this point */ /* return to lh79524_startup.s and branch from there to * __main() for final initialization before app start */ }
不懂为什么要这样,这个.C文件中还有就是一些封装好的初始化函数,如初始化时钟,等
evb79524_boot.c
这个文件我看了代码也不知道它做点什么东西.有几个函数如,__user_initial_stackheap,_ttywrch,_sys_exit等.帮我看看这个执行了什么呀?和其它文件有何联系?
memory map 如下:
0x00000000_0x1FFFFFFF system sdram(mirrored) 这里也有疑问CPU上电复位后不就是从0x00000000执行呀!照我理解这里应该放个FLASH/ROM 不然程序如何执行.请教??
0x2000000-0X3FFFFFFF system SDRAM
0x44000000-0x48000000 FLASHMEMORY
0x6000000-0x80000000 片内RAM
0x800000-0xa0000000 BOOT ROM
>>>>>>>>>>>>>>
现在的问题是我怎样才能让LED点亮.(我现在做的就是直接用ADS就编译simple.c没有用startup,直接下到片内RAM区执行可行吗?).同时让小弟明白下 ARM到底是怎么样的一个开发步骤,程序如何下载的!万分感谢!!!