• «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go
主题 : Realview MDK3下进行mini2440裸机开发 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 26559
精华: 0
发帖: 9
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2010-08-10
最后登录: 2010-08-31
楼主  发表于: 2010-08-25 12:58

 Realview MDK3下进行mini2440裸机开发

RealView MDK 开发套件源自德国Keil 公司,是ARM 公司目前最新推出的针对各种嵌入式处理器的软件开发工具。最近有空手痒痒,拿出了我买了很久的mini2440。打算从“裸奔”玩起,当然也要选个开发平台,本来就想着用ADS的,因为之前看到很多人用它来开发ARM7,受到很多开发者的青睐,应该还是不错的。不过又听一个师兄说道MDK 这东西,去了解下,其实就是集成了Keil的一个开发环境。因为之前都用keil 来玩51 的,对它比较熟悉,而且现在ADS也不开发了,没了技术支持,所以还是试试MDK。

        刚玩2440 就遇到了很多问题,刚开始是我电脑usb 不可以下载镜像到我板子上,就我电脑不行,现在还没解决!心情低沉了几天。感觉单片机跟ARM9还真不是一个等级的东西,而且2440 裸机开发这方面的资料不多。所以很多时候你都不可以站在巨人的肩膀上哦,还得自己琢磨!-_-伤脑筋!不过还好,北漂大哥的群里还有几个人在玩,在这里先谢谢你们,谢谢你们的陪伴,我才不至于在寂寞中死去^_^.
说了一大堆,该言归正传了。今晚我成功在MDK3.4 环境下,用我的jlink来调试我的mini2440。(jlink 是跟一个师兄买的,挺好用,特别是烧写速度很快,就这个 http://item.taobao.com/item.htm?id=5581737352)
下面我分享下我今晚的成果,
先去下载一个MDK3.4 评估版安装(我用3.5 的调试不了,下面会作说明)
1.建个文件夹,在里面建立工程。我这里工程名为led_test

2.选芯片,这里选S3C2440A

3.选“是”添加默认启动代码:

4.新建main.c 文件,并加入工程当中:


5. 在E:\MDK V3.4\ARM\Boards\Samsung\S3C2440\RTX_Blinky 中找到Ext_RAM 文件,复制到你的工程目录中,并修改其中:Obj\Blinky.axf 为.\led_test.axf(结合你的文件名和路径来改)



7.配置option for target:

下图配置Linker 选项注意箭头所指方向要勾上,要不会编译出错

下图配置Debug 选项要注意三点:1.Use 中选RDI Interface Driver,我选jlink的时候不能进入调试,而且在Keil4 中没有RDI Interface Driver 这个选,所以keil4下我还没实现调试;2.Run to main()选项勾上,调试的时候就会直接跑到main()函数了,当然如果你要看启动代码的执行过程,也可以把这勾去掉;3.InitializationFile 中选择你刚才改过的Ext_RAM.ini 文件。



下图配置Utilities 选项,选RDI Interface Driver,然后点setting 会弹出对话框2,在 第一个Browse 选择JLinkRDI.dll 文件,从图中可以看到我是从我MDK 的安装目录的bin 文件夹下选的,其实你安装好的MDK 文件夹下原来是没有这个文件的,要在你所安装的JLink 驱动软件的目录下找到copy 到MDK 的bin 文件夹下。该驱动软件可以到SEGGER 公司网站下载最新版本。http://www.segger.com/download_jlink.htm

到这里为止,option for targer 所有选项都已经配置好了,你可以连接你的jlink到你的mini2440,然后在MDK 中点调试按钮来进行调试。当然其中可能出现很多问题的,那就要看情况解决了。还有一个是如果你想产生bin 格式的目标文件的话,你可以在user 选项中通过敲入指令来解决。如下图,具体方法可以网上搜索。

7
最后附上主函数源代码:(这个是网上拿的,最好自己写一个,很简单的IO 操作)
#include <S3C2440.h>
#define LED1_ON ~(1<<5)
#define LED2_ON ~(1<<6)
#define LED3_ON ~(1<<7)
#define LED4_ON ~(1<<8)
#define LED1_OFF (1<<5)
#define LED2_OFF (1<<6)
#define LED3_OFF (1<<7)
#define LED4_OFF (1<<8)
/*************************************************
Function name: delay
Parameter : times
Description : 延时函数
Return : void
Argument : void
Autor & date :
**************************************************/
void delay(int times)
{
int i;
for(;times>0;times--)
for(i=0;i<400;i++);
}
/*************************************************
Function name: Led_port_init
Parameter : void
Description : mini2440 开发板有个引脚连接了LED 发光
二极管,分别是GPB5--LED1,GPB6—LED2
GPB7--LED3,GPB8--LED4,该函数的作用
是对其个引脚进行初始化。
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
8
void Led_port_init(void)
{
/*设置GPB5-GPB8 为输出端口*/
GPBCON &= ~((3<<10)|(3<<12)|(3<<14)|(3<<16));
GPBCON |= (1<<10)|(1<<12)|(1<<14)|(1<<16);
}
/*************************************************
Function name: Main
Parameter : void
Description : 主功能函数
Return : void
Argument : void
Autor & date :
**************************************************/
int main(void)
{
int i;
Led_port_init();
for(i=0;i<100;i++)
{
/* 全亮*/
GPBDAT =
GPBDAT&(LED1_ON)&(LED2_ON)&(LED3_ON)&(LED4_ON);
delay(10000);
/* 全灭*/
GPBDAT = GPBDAT|(LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF);
delay(10000);
}
}
ps:以上的配置还有很多学问在里面,我讲的也可能有很多错误的地方,非常欢
迎大家指正。或大家觉得有什么可以补充说明的,请加上去!欢迎一起交流学习,
共同进步!可以通过以下方式联系我:
My QQ Number:879158132
Blog: http://i.am.with.u.blog.163.com/
或者你可以加入我们的mini2440 学习群:25997168

下面附PDF文档下载
附件: Realview MDK3.4下进行2440裸机开发.rar (491 K) 下载次数:965
专注于嵌入式&Linux
级别: 骑士
UID: 12802
精华: 3
发帖: 237
金钱: 1355 两
威望: 271 点
贡献值: 3 点
综合积分: 534 分
注册时间: 2010-01-13
最后登录: 2014-03-18
1楼  发表于: 2010-08-25 20:14
这个要顶。。。
级别: 新手上路
UID: 27476
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
贡献值: 0 点
综合积分: 6 分
注册时间: 2010-08-26
最后登录: 2017-09-13
2楼  发表于: 2010-08-26 13:55
学习了 谢谢
级别: 新手上路
UID: 25779
精华: 0
发帖: 31
金钱: 155 两
威望: 31 点
贡献值: 0 点
综合积分: 62 分
注册时间: 2010-07-29
最后登录: 2010-10-10
3楼  发表于: 2010-08-26 19:31
楼主是好人,能加你的QQ吗?多多交流
玩好arm
级别: 新手上路
UID: 27525
精华: 0
发帖: 28
金钱: 190 两
威望: 38 点
贡献值: 0 点
综合积分: 56 分
注册时间: 2010-08-27
最后登录: 2010-09-01
4楼  发表于: 2010-08-27 10:57
学习
级别: 新手上路
UID: 28417
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2010-09-10
最后登录: 2017-09-13
5楼  发表于: 2010-09-10 20:33
好东西啊 学学
级别: 侠客
UID: 11461
精华: 0
发帖: 89
金钱: 450 两
威望: 93 点
贡献值: 0 点
综合积分: 178 分
注册时间: 2009-12-08
最后登录: 2017-08-29
6楼  发表于: 2010-09-10 20:39
ADS用惯了,不习惯用别的了
级别: 新手上路
UID: 28420
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2010-09-10
最后登录: 2010-10-08
7楼  发表于: 2010-09-10 21:33
Win7下就只能用这个了,顶一下
级别: 侠客
UID: 11461
精华: 0
发帖: 89
金钱: 450 两
威望: 93 点
贡献值: 0 点
综合积分: 178 分
注册时间: 2009-12-08
最后登录: 2017-08-29
8楼  发表于: 2010-09-10 21:36
引用第7楼chenkui于2010-09-10 21:33发表的  :
Win7下就只能用这个了,顶一下



win7下也可以用ads 1.2啊
偶尔会出点乱子罢了
级别: 新手上路
UID: 28862
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
贡献值: 0 点
综合积分: 2 分
注册时间: 2010-09-18
最后登录: 2010-09-19
9楼  发表于: 2010-09-18 12:01
顶,不错的资料
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go