早就知道有工程模板这个东东,类似于power pcb在启动时自动设置好一些常用工作环境一样。今天下定决心好好研究研究这个工程模板到底是怎么回事,经过一番搜索终于找到好文章了。。
一般说来汇编用来初始化之后跳到C入口MAIN函数处
3.将文件夹内的ARM Executable Image。MCP工程文件更名为S3C44B0_ARM_template.mcp,删除对应的同名数据文件夹ARM_Executable_Image_Data,方便下次编译。
4.复制自己的工程模板文件,如果按照我这里提供的这个文件包,目录组织如下:
../INC 所有的头文件,至少得包含一些常用的文件44binit.s ,44blib_a.s
INCLUDE ..\inc\memcfg.s
5.双击打开MCP文件,删除没用的Targets文件,把刚才复制到新模板目录下的文件加入工程
2) Target Setting->Linker里选ARMLinker ,用于设置编译器连接
3) Target Setting->Post-Linker选ARM fromELF
用于生成FLASH烧录代码(只在RAM里运行 而不烧录则不用)
4) ARM Linker->RO BASE里添地址(重点设置)
根据板子来,这板子上RAM接的NSCS6,地址0XC000000-0XC7FFFFF;
FLASH接的NSCS0,地址0X00000-0XFFFFF
地址分配原理见44B0数据手册内存管理那章的内存分配图
但是注意的是地址不要添过界,比如想在RAM里调试却添0X00000000 程序可以 进入C代码 但没法运行
再有
想生成用于烧写得FLASH代码 RO地址就需要设置为0X0000000开始的 而且LAYOUT中也必须设置44BINIT.O为初始加载文件
以上FLASH测试结论经FLASHPGM测试
而且FLASHPGM不支持BIN文件 只支持INTEL得HEX文件
4)RW可以添 可以不添 一般RO解释为数据段,RW解释为数据段
有时高兴了就添上0XC100000(RAM调试时)
5)ARM Linker->OPTION->Image entry point选择0xc000000(RAM调试时)
6)ARM Linker->Layout->Object/Symbol里可以添工程起始程序44BINIT.O 注意是.O不是.S和.0(零)
也可以不添
打开工程 Settings 修改相关内容,下面是只我修改的,大家可以根据自己需要设定
target:
Target Settings;
Target Name : DEBUG_44b0
Post-linker : ARM fromELF
Access Paths: 均修改成指向工程的目录
Linker:
ARM Linker
Output
linkytpe: simpley RO Base 0x000000 RW Base 0x202000
Options
image entry point :entry
Layout
Place at beginning of image
Object/Symbol:cstartup.o
Section : reset
ARM fromELF
Output format : Plain binary
Output file name
X:\XXXX.bin
修改完毕要保存哦,
编译一下,看是否能通过,没问题了就可以关闭工程了,
最后回到D:\Program Files\ARM\ADSv1_2\Stationery\44b0_ARM_template下面
删除44b0_ARM_template_Data文件夹及里面内容
以后打开ADS应该可以看到自己的建立的模板了