arm 开发环境搭建

  有了开发板后,下一步就是学习裸机程序的编写。首先就是开发环境的选择了。我尝试过使用windows下的ads 1.2, 感觉它最实用的就是那个adx调试器,那个调试器还带有arm核模拟器,对于学习arm汇编非常有利,可以以调试的方式来学习每种指令。但它的编缉器确实不敢恭维,另外还时不时有一些乱码。rvds 3.0 基于eclipse,比较符合自己的使用习惯,但那个软件的破解我按网上所说的步骤尝试了N次都没成功。看来还是先不要IDE了,IDE还隐藏了一些编译链接的步骤,对于深入学习不好。于是,还是回到大本营:linux。

  要完全摆脱windows, 首先要找超级终端和DNW 软件的替代器。这年头google一下什么都有了:可以用minicom替代超级终端,还有一位高人写了dnw for linux,很好~~。

  minicom的配置非常简单,也是注意波特率和软件硬控制选无就行了。usb 转串口线在我的ubuntu下直接识别,连驱动都省了。另外,如果minicom非正常关闭,会留下lock文件在/var/lock中,如果该文件存在,下次启动minicom会失败,应先将这个文件删除。我一开始就不熟悉minicom的操作,直接关闭console,这是不对的,正确的做法是先按Ctrl+A, 再按Z就会弹出功能菜单,在功能菜单中选退出项。

  dnw for linux也周折了一翻,这个程序分成了两部分:驱动和数据写入程序。按网上所说的步骤,驱动是可以正常安装的,但数据写入程序就是写失败,后来又在网上查了一下,发现别人也遇到了这个问题,原来原程序没有传输数据校验码造成的,加上后重新编译程序,OK。另外,查看源码可以发现,文件的加载地址在程序中是写死的,可以修改一下程序,带上一个可输入的加载地址参数。

  然后就要安装arm工具链,我目前就使用了ldd6410的arm工具链,只需解压一下压缩包,设定好环境变量即可。

  在tiny6410的附带光盘中有一个裸机程序demo, 该demo是用ads编译的,由于编译器不同,所以statup.s中的一些arm伪指令要改成gnu arm汇编才行。我想通过sd卡的方式将该程序加载到50000000 地址处运行,该地址属于RAM地址空间,在链接时应加上-Ttext 50000000 参数,在使用dnw for linux加载程序时也应指定加载地址50000000。之后程序就可以通过superboot加载到内存运行了。

  下一步就要分析一下这个demo程序的代码,做些简单的修改试验。

 

你可能感兴趣的:(eclipse,linux,windows,汇编,终端,编译器)