keil4 进行 S3C2440裸机开发

keil4 进行 S3C2440裸机开发用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现觉得此编文章很详实,故转载之,来自http://www.amobbs.com/thread-5281512-1-1.html开发板也差不多买了半年了,以前照着教程用的是软件是ADS,在win7下老是崩溃,后来才知道ADS早就不提供支持了,ADS的公司怎样怎样了…(此处省略300..)然后我就捣鼓

大家好,又见面了,我是你们的朋友全栈君。



用Keil-MDK开发TQ2440裸机程序入门教程——LED流水灯实现

觉得此编文章很详实,故转载之,来自http://www.amobbs.com/thread-5281512-1-1.html

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

主要内容有:
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盘的)
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
对JLINK不熟可以参考TQ2440的使用手册第四章, TQ2440烧写说明, 4.1.3 使用Jlink-Flasher烧写

2. 创建工程和编写代码
keil4 进行 S3C2440裸机开发
(原文件名:2.png)

keil4 进行 S3C2440裸机开发
(原文件名:3.png)
选择CPU, 然后点OK
keil4 进行 S3C2440裸机开发
(原文件名:4.png)
复制启动代码到我的工程文件里, 选是,
keil4 进行 S3C2440裸机开发
(原文件名:5.png)
然后工程就建好了
keil4 进行 S3C2440裸机开发
(原文件名:6.png)
启动代码就在S3C2440.s里面, 在Keil里面是可以可视化自由配置的, 打开S3C2440.s你会看到很多的汇编代码, 呵呵, 我也不喜欢汇编. 然后点下面的配置向导keil4 进行 S3C2440裸机开发
(原文件名:7.jpg)
先都打个勾吧, 其实我也不知道这样配置好不好,
keil4 进行 S3C2440裸机开发
(原文件名:8.jpg)
对了, LED对应的IO口要设置为输出
keil4 进行 S3C2440裸机开发
(原文件名:9.png)
建个main.c文件, 写你的工程代码咯~这里就以闪烁灯为例啦
新建文件, 其实不太想说这个了, 考虑到可能还真有人没用过Keil的…keil4 进行 S3C2440裸机开发
(原文件名:10.png)
点保存, 文件名为main.c
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
好了, 开始写代码了, 噢, 还要先把main.c文件添加到项目里来咧
keil4 进行 S3C2440裸机开发
(原文件名:1.png) 选择main.c, 鼠标单击Addkeil4 进行 S3C2440裸机开发
(原文件名:1.png)  工程目录里就有这个东东了keil4 进行 S3C2440裸机开发
(原文件名:1.png)
下面是代码:
注意到我在第一句打了个断点, 呵呵, 无奈, 之前调试的时候上系统启动后自动在main函数入口停下来的指令不管用, 所以就手动加了个断点了,然后就可以保存文件啦
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
设置工程:keil4 进行 S3C2440裸机开发
(原文件名:1.png)
这一项玩过51的就再熟不过了keil4 进行 S3C2440裸机开发
(原文件名:1.png)
这个设置不重要, 习惯而已keil4 进行 S3C2440裸机开发
(原文件名:1.png)
准备完啦, 继续~

二. JLINK在SDRAM中调试TQ2440

用SDRAM调试是一个不错的方式, 可以有效的减少Flash的擦写, 方便又快捷, 呵呵, 不啰嗦了, 直接进入正题~
在SDRAM里面调试的时候是这样设置的, 主要是ROM1和RAM1的起始地址
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
对了, 还要复制一个初始化文件,  文件在Keil的安装目录里找, 我这里是D:\Program Files\Keil\ARM\Boards\Samsung\S3C2440\RTX_Blinky\Ext_RAM.ini
直接复制到你的工程目录下, 然后还要做一点修改, 如果不修改, 就调试不了, 会出现这样的情况
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
工程输出的.axf文件(我也不清楚是用来干啥的)在工程目录下的Output文件夹里, 所以可以用编辑工具(记事本就行了)打开来这样修改:
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
然后添加这个文件,keil4 进行 S3C2440裸机开发
(原文件名:1.png)
呃, 突然发现少做了一件事…这样就OK了, 设置utilities这里添加了烧写算法的, 其实在烧NOR Flash那里我才需要这个, 这个算法是不能擦除的, 但是这里我找不到合适的算法, 就用这个相近的了, 要擦除的话就用JFlash。

Note:update target before degugging de 选项是不选的,我第一眼看以为是要勾上的!!!!

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

三. 烧写NOR Flash

烧写NOR Flash时要这样配置:
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
然后是这个, 再啰嗦一下, 设置utilities, 这里添加了烧写算法的, 这个算法是只能用来编程不能擦除的, 但是这里我找不到合适的算法, 就用这个相近的了, 要擦除的话就用JFlash
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
按F7编译, 然后打开JFlash, JFlash的设置参考TQ2440的用户手册哈,然后
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
擦除…keil4 进行 S3C2440裸机开发
(原文件名:1.png)
回到MDK, LOAD, 就可以看到下载成功了
keil4 进行 S3C2440裸机开发
(原文件名:1.png)

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

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

然后这个是设置keil4 进行 S3C2440裸机开发
(原文件名:1.png)
接着, 让keil在生成后运行生成bin文件的用户程序,
keil4 进行 S3C2440裸机开发
(原文件名:1.png)
然后编译就可以生成需要的bin文件了, 就在你的工程目录下, 下载的方式和TQ2440裸奔教程那里一开始说的是一样的, 用secureCRT和DNW, 我就不多说啦 ^_^

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136266.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【C++ spdlog】C++ 日志库 spdlog 使用

    【C++ spdlog】C++ 日志库 spdlog 使用1、在https://github.com/gabime/spdlog处下载源文件;2、下载后解压,将得到以下文件,其中include文件夹里是所需的头文件及源码;3、新建一个C++控制台应用程序项目spdlog-test,在项目属性页VC++目录-包含目录中添加上述include路径4、添加源文件源.cpp,输入以下代码#include<iostream>#…

  • WSDL 详解_wsdl文件

    WSDL 详解_wsdl文件1.WebService的一些相关概念webservice:远程调用的一种方案。一种解决跨平台、跨语言间的分布式系统的集成(整合)方案esb:enterpriseservicebus企业服务总线soap:simpleobjectaccessprotocal简单对象访问协议(http+xml)soa:serviceorientedacrchiet

  • HTML入门

    HTML入门HTML入门

  • Ubuntu使用vdbench批量创建目录和文件「建议收藏」

    Ubuntu使用vdbench批量创建目录和文件「建议收藏」Vdbench是一个命令行实用程序,旨在生成用于验证存储性能和存储数据完整性的磁盘I/O负载。还可通过输入文本文件指定Vdbench执行参数,下面是使用vdbench批量创建目录和文件的示例1.先利用wget下载vdbench,比如当前版本为:vdbench503.zip2.再使用unzip命令解压缩,$unzipvdbench503.zip-d/data/

  • 数据结构之循环队列

    数据结构之循环队列数据结构之循环队列前言:关于循环队列需明白以下几点:1、循环队列是队列的顺序存储结构2、循环队列用判断是否为空利用Q.front=Q.rear3、循环队列头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置4、按照队列的定义,队头删除,队尾插入,在这里插入图片描述会导致队头之前可能有空余的内存空间(如下图J1,J2出队后,空间被浪费),为了解决该问题,提出循环队列的解决方…

  • 硬件工程师如何零基础入门?

    硬件工程师如何零基础入门?文章目录1、书籍阅读2、网站推荐3、免费的教学课程推荐4、知识体系的搭建4.1电子元器件知识学习4.2硬件开发工具的使用4.3PCB设计和电路设计4.3总线接口协议学习4.4进阶内容学习这个问题关注有一段时间了,想找一个比较长的空闲的时间好好的回答一下。首先我是一名硬件工程师,工作6年,从事过物联网、车载、智能硬件、手机平板等产品的硬件研发工作,我觉得我还是有一些发言权的。不同行业的硬件工程师差别也是蛮大的,但也不是无迹可寻,很多东西也是相通的。核心思想都是一样的,硬件工程师都是围绕电路设

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号