天嵌 ARM开发社区

 找回密码
 注册
查看: 22740|回复: 36

用Keil MDK开发TQ2440裸机程序入门教程

[复制链接]
Pony279 发表于 2011-12-19 13:28:02 | 显示全部楼层 |阅读模式
本帖最后由 Pony279 于 2011-12-19 13:35 编辑

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5281512&bbs_page_no=1&search_mode=3&search_text=Pony279&bbs_id=9999

前段时间自己写的小教程, 其实我也是新手~分享一下经验~:)

开发板也差不多买了半年了(一直没时间玩, 都快沾上尘了...), 以前照着教程用的是软件是ADS,在win7下老是崩溃, 后来才知道ADS早就不提供支持了, ADS的公司怎样怎样了...(此处省略300..)
然后我就捣鼓着怎么转到KEIL上来, 具体的例程代码我不会移植, 不过裸机开发是没什么问题的了, 在网上也找了些教程, 因为我比较菜, 然后教程又不是针对TQ2440的, 也有针对TQ2440的, 内容不全, 前段时间一直看不懂, 无奈, 捣鼓了好长时间, 终于明白了, 然后就想写一份文档, 造福一下和我一样用TQ2440的后人~
先上传示例工程点击此处下载 ourdev_704996U2860Q.zip(文件大小:74K) (原文件名:JLINKDemo.zip)  

主要内容有:
1 准备工作
2.JLINK SDRAM调试
3.JLINK 烧写NOR Flash
4.生成下载到NAND的bin文件(这个不需要JLINK)


一. 准备工作:

1. JLINK驱动(如果只是打算生成下载到nand的bin文件的话就不用看这个了)

1). 首先安装驱动

2). 阅读此目录下的readme文档, 用Flash.csv   支持更多Nor Flash的配置文件替换C:\Program Files\SEGGER\JLinkARM_V408e\ETC\JFlash目录下的同名文件(假设您是把这个软件安装到C盘的)


对JLINK不熟可以参考TQ2440的使用手册第四章, TQ2440烧写说明, 4.1.3 使用Jlink-Flasher烧写


2. 创建工程和编写代码


选择CPU, 然后点OK

复制启动代码到我的工程文件里, 选是,

然后工程就建好了

启动代码就在S3C2440.s里面, 在Keil里面是可以可视化自由配置的, 打开S3C2440.s你会看到很多的汇编代码, 呵呵, 我也不喜欢汇编. 然后点下面的配置向导


先都打个勾吧, 其实我也不知道这样配置好不好,

对了, LED对应的IO口要设置为输出

建个main.c文件, 写你的工程代码咯~这里就以闪烁灯为例啦
新建文件, 其实不太想说这个了, 考虑到可能还真有人没用过Keil的...

点保存, 文件名为main.c



好了, 开始写代码了, 噢, 还要先把main.c文件添加到项目里来咧
  
选择main.c, 鼠标单击Add
   
工程目录里就有这个东东了

下面是代码:
注意到我在第一句打了个断点, 呵呵, 无奈, 之前调试的时候上系统启动后自动在main函数入口停下来的指令不管用, 所以就手动加了个断点了,然后就可以保存文件啦

设置工程:

这一项玩过51的就再熟不过了

这个设置不重要, 习惯而已


准备完啦, 继续~



二. JLINK在SDRAM中调试TQ2440

用SDRAM调试是一个不错的方式, 可以有效的减少Flash的擦写, 方便又快捷, 呵呵, 不啰嗦了, 直接进入正题~
在SDRAM里面调试的时候是这样设置的, 主要是ROM1和RAM1的起始地址

  对了, 还要复制一个初始化文件,  文件在Keil的安装目录里找, 我这里是D:\Program Files\Keil\ARM\Boards\Samsung\S3C2440\RTX_Blinky\Ext_RAM.ini
直接复制到你的工程目录下, 然后还要做一点修改, 如果不修改, 就调试不了, 会出现这样的情况

工程输出的.axf文件(我也不清楚是用来干啥的)在工程目录下的Output文件夹里, 所以可以用编辑工具(记事本就行了)打开来这样修改:

然后添加这个文件,
  
呃, 突然发现少做了一件事...这样就OK了, 设置utilities这里添加了烧写算法的, 其实在烧NOR Flash那里我才需要这个, 这个算法是不能擦除的, 但是这里我找不到合适的算法, 就用这个相近的了, 要擦除的话就用JFlash

现在可以按F7编译了, 然后用你的JLINK连接好TQ2440开发板和你的电脑, TQ2440要先上电哦~最后在KEIL里面点调试就行了~  
  
然后你就可以单步调试什么的了, 主要是由这里控制的, 我就不多说了, 自己捣鼓捣鼓去吧~






三. 烧写NOR Flash

烧写NOR Flash时要这样配置:


然后是这个, 再啰嗦一下, 设置utilities, 这里添加了烧写算法的, 这个算法是只能用来编程不能擦除的, 但是这里我找不到合适的算法, 就用这个相近的了, 要擦除的话就用JFlash

按F7编译, 然后打开JFlash, JFlash的设置参考TQ2440的用户手册哈,然后

擦除...


回到MDK, LOAD, 就可以看到下载成功了


四. 生成下载到NAND的bin文件

首先, TQ2440开发板出厂的时候是有烧有BootLoader的, 我也不懂BootLoader的原理, 所以直接用那个就行了. 如果刚刚烧过NOR Flash, 那么BootLoader就没了, 要重新烧进去了, 这个可以参考TQ2440的使用手册第四章, TQ2440烧写说明, 4.1.3 使用Jlink-Flasher烧写

然后这个是设置

接着, 让keil在生成后运行生成bin文件的用户程序,

然后编译就可以生成需要的bin文件了, 就在你的工程目录下, 下载的方式和TQ2440裸奔教程那里一开始说的是一样的, 用secureCRT和DNW, 我就不多说啦 ^_^


评分

参与人数 3 +26 收起 理由
redask + 1 很给力!
TQ-lkp + 15 感谢分享
记事本 + 10 赞一个!

查看全部评分

 楼主| Pony279 发表于 2011-12-19 13:37:16 | 显示全部楼层
本帖最后由 Pony279 于 2011-12-28 16:37 编辑

注意: 不建议用这个教程的方法去生成下载到NAND flash的bin文件(因为这里程序最大只可以有4K, 原因请参考教程2), 照着教程操作一次熟悉一下就好,
如果要生成下载到nand flash的bin 文件并移植TQ2440配套的测试程序, 请参考教程2:
http://www.armbbs.net/forum.php?mod=viewthread&tid=10500&page=1#pid59291

TQ-lkp 发表于 2011-12-19 14:03:22 | 显示全部楼层
我来帮你顶起来:D
 楼主| Pony279 发表于 2011-12-19 14:22:56 | 显示全部楼层
谢谢版主~
从51单片机学过来的对Keil和裸机是有深厚感情滴~:lol
reder_mcu 发表于 2011-12-19 15:50:44 | 显示全部楼层
好贴,顶起来~
 楼主| Pony279 发表于 2011-12-19 20:07:30 | 显示全部楼层
本帖最后由 Pony279 于 2011-12-19 20:10 编辑







参考过的资料...其实还有, 传不了了, 一天只能上2M

最近准备考试了,
寒假的时候我打算增加移植裸机测试程序的教程:)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| Pony279 发表于 2011-12-20 00:11:58 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
547886405 发表于 2011-12-20 11:43:59 | 显示全部楼层
楼主辛苦了,谢谢楼主分享 ,很好的学习资料!
mojingxian 发表于 2011-12-20 15:50:56 | 显示全部楼层
为毛我生成的bin文件烧到nor flash中跑不起来?SDRAM中倒是可以仿真,生成bin的时候已经设置rom地址从0开始了
 楼主| Pony279 发表于 2011-12-20 18:18:54 | 显示全部楼层
mojingxian 发表于 2011-12-20 15:50
为毛我生成的bin文件烧到nor flash中跑不起来?SDRAM中倒是可以仿真,生成bin的时候已经设置rom地址从0开始 ...

生成的bin文件是烧到NAND flash用的呀...
 楼主| Pony279 发表于 2011-12-20 19:42:08 | 显示全部楼层
mojingxian 发表于 2011-12-20 15:50
为毛我生成的bin文件烧到nor flash中跑不起来?SDRAM中倒是可以仿真,生成bin的时候已经设置rom地址从0开始 ...

我已经按照我上面说的内容重新测试了一遍, 没发现问题呀
你再仔细检查一下, 看哪里没做到
song549 发表于 2011-12-21 13:05:03 | 显示全部楼层
必须说,楼主辛苦了,不错,现在还是喜欢在source insight里面写写程序。:lol
kingvenlee 发表于 2011-12-21 15:08:32 | 显示全部楼层
这是个好东西啊。。顶起
 楼主| Pony279 发表于 2011-12-21 17:04:00 | 显示全部楼层
song549 发表于 2011-12-21 13:05
必须说,楼主辛苦了,不错,现在还是喜欢在source insight里面写写程序。

嗯, KEIL的代码编辑器用起来真是蛋疼...
不过source insight的风格我不太习惯, 所以很少用

评分

参与人数 1 +6 收起 理由
大有可为 + 6

查看全部评分

天嵌科技游客
天嵌科技游客  发表于 2011-12-21 20:36:18
还没拿到板子的新手,先把帖子收藏再说,楼主辛苦了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-29 07:26 , Processed in 1.062500 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表