总结1.
错误输出:
Build target 'Target 1'
assembling init_test.s...
linking...
Startup.axf: Error: L6320W: Ignoring --entry command. Cannot find argument 'Reset_Handler'.
Startup.axf: Warning: L6320W: Ignoring --first command. Cannot find argument 'Reset_Handler'.
Target not created
原因是realview mdk的链接器默认设置入口地址为Reset_Handler处,只需在第一条跳转指令前加下如下语句即可:
export Reset_Handler
Reset_Handler
总结2.
ini文件里面可以是一些调试命令或调试函数,这些命令和函数用来初始化一些寄存器等.
ini文件通常添加在debug---initialization file 里面.
例如
FUNC void Setup (void)
{
// <o> Program Entry Point
pc = 0x30000000;
}
map 0x48000000, 0x54000000 read write 指定0x48000000-0x54000000访问许可,可以指定为读(READ)、 写(WRITE)和执行(EXEC) 访问
Setup(); // Setup for Running
总结3: 如何选择在ROM(0x0)或在RAM(0x30000000)处进行调试?
1. 在脚本SDRAM中设置PC指向;
2. 在MDK的options->linker选项的R/O Base里设置code的起始放置处
3. MDK的options->target的ROM RAM的设置和sct脚本有关, 见阿南光盘文章:2410的分散加载文件.
4. 调试时,上述3个地方的设置需一致配合.
总结4: 如何用SFJ2410工具烧写nandflash
1. 确认GIVEIO驱动安装,以及jtag接口的OK
2. 将SFJ2410.exe和映像文件XXX.bin放C盘根目录
3. 打开CMD窗口,切换到C盘根目录后输入SFJ2410 /f:XXX.bin
4. 按向导步骤烧录后重启开发板
问题:如何指定烧录区域?
总结5:C语言写寄存器
1. 注意位运算符的结合方向,取反后的数据,应该”&”或”|”;
------------------------------------------------------------------------------------------------------------------------
问题1:如何正确烧写大于4K的应用程序到板子上的nandflash并启动
评估版MDK不能使用分散加载文件,是否就不能在启动代码中加入"搬运代码"
问题2:
void uart_sendbyte(int nData)
{
if(f_nWhichUart==0)
{
if(nData=='/n')
{
while(!(rUTRSTAT0 & 0x2));
delay(10); //because the slow response of hyper_terminal
WrUTXH0('/r');
}
while(!(rUTRSTAT0 & 0x2)); //Wait until THR is empty.
delay(10);
WrUTXH0(nData);
}
我软件仿真串口,到while(!(rUTRSTAT0 & 0x2));时总会停止,手动修改rUTRSTAT0为2后使程序能跑下去,但为何仿真串口没有输出,谁用过仿真串口么?