原文链接:http://blog.sina.com.cn/s/blog_874d30c90101mf7t.html
FL2440的开发板我买回来好久了,随板子配有的全是ads的资料,但是前段时间在学校老师要求我们要学会用mdk的环境来进行软件的开发,为了这件事情,我真的纠结了好久,网上有很多资料,可是发现tq2440、ok2440、mini2440的资料偏多,我也尝试着按照这些资料对自己的fl2440的板子进行测试,但是始终不能成功,也就把板子放置了好长一段时间。
今天晚上我又硬着头皮进行了尝试,我就不信我解决不了这个问题,功夫不负有心人,我终于解决了这个问题,看着跑马灯在我的fl2440的板子上成功的运行,我感觉很欣慰,下面就和大家来分享一下我的研究成果(当然前提是你也有fl2440开发板配套的那些实验代码,因为我是直接利用的)
1.新建一个project->s3c2440,这个我想大家都懂得吧....
2.会跳出是否加入默认的s3c2440init.s,这时候选择否,因为如果加入默认的s3c2440init.s我没成功过!
3.设置project的options
(1)Target:
Read/Only...那个部分,在ROM1前面的default打勾,然后Start:0x0,Size:0x100000,最后要选中startup
Read/Write...那个部分,在RAM1前面的default打勾,然后Start:0x30800000,Size:0x2000000,最后Noint不选中!
如图:
选中右侧的use,然后选择为J-Link/J-TRACE ARM,然后点击setting,JTAG speed设置为Auto Selection,点击OK。然后Initialization File:选择为Ext_RAM.ini(这个文件貌似在fl2440配套的资料里没有,在mdk安装的路径下我也没找到,但是我在网上找到了,在本文末我会附上这段代码的,只要复制下来然后保存成这个文件名并放置到project所在目录下,然后再进行浏览的时候就会有这个文件了。)
如图:
把use target..设置为J-Link/J-TRACE ARM,然后去掉后面Update Target的勾,这一步一定要做!否则会出现报错!然后点击Setting,如果其中的description有一条S3C2440 NAND...就可以直接点ok了,如果没有就点击Add,然后找到S3C2440 NAND..这一条,再点击OK。
如图:
5.修改Init.s
在第一行加PRESERVE8,第二行修改为AREA RESET,CODE,READONLY
6.编译,调试。
就可以看到跑马灯实验的成功结果了!
附:Ext_RAM.ini的代码(新建一个txt,复制下面的代码进去后,把文件名修改成Ext_RAM.ini就可以了,注意这段代码最后的LOAD .\4.axf INCREMENTAL要修改成与自己project配套的名称,我的名字就取了一个4,如果是aaa,就改成LOAD
.\aaa.axf INCREMENTAL):
.\aaa.axf INCREMENTAL):
// <<< Use Configuration Wizard in Context Menu >>> //
FUNC void SetupForStart (void) {
// <o> Program Entry Point
}
FUNC void Init (void) {
}
// Reset chip with watchdog, because nRST line is routed on hardware in a way
// that it can not be pulled low with ULINK
_WDWORD(0x40000000, 0xEAFFFFFE); // Load RAM addr 0 with branch to itself
CPSR = 0x000000D3; // Disable interrupts
PC = 0x40000000; // Position PC to start of RAM
_WDWORD(0x53000000, 0x00000021); // Enable Watchdog
g, 0 // Wait for Watchdog to reset chip
Init(); // Initialize memory
LOAD .\4.axf INCREMENTAL // Download program
SetupForStart(); // Setup for Running
g, main // Goto Main