注册
登录
搜索
帮助
中国Linux公社论坛
»
lumit项目专栏
» 致和我一样的初学者--我在入门途中遇到的问题及解决办法
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
致和我一样的初学者--我在入门途中遇到的问题及解决办法
zgfszyx
新手上路
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2006-5-30 11:37
只看该作者
致和我一样的初学者--我在入门途中遇到的问题及解决办法
买44B0的开发板已一年多了,但平时也没多少时间,况且中间有近一年没动它。今年才拿出来,因为我之前只会51单片机,这是好事也是坏事,好在有微控基础,坏在在51开发工具上思路的根深蒂固,在ADS等等软件以及存储器结构上走了些弯路,昨晚刚把中断调试成功,作个总结,有和我相同“遭遇”的朋友可以借鉴一下!
第一次是我写了一个最简单的C按键点灯程序,用软件仿真(ARMUL)正常,但烧到板上不能运行,灯闪一下就灭了。这个问题是我当时对存储器及启动代码的执行了解不够,将ADS里的RO和RW都设为0的缘故,应为0和0X0C00_0000(如果SDRAM是接在BANK6的话)。
第二次问题就在几天前做中断试验的时候,用ARMUL仿真正常(但不能仿真中断,这个问题我发了若干帖子都没人回,个人认为ADS开发环境真的还有不少欠缺,有些难懂),但若接上目标板用JTAG代理仿真就不会跳到MAIN处执行,而是跳到初始化端口中的一行,感觉在乱跳。这个问题试了好多天,因为用的是简易JTAG,稳定性上我也不敢百分百的相信,虽然也曾用过Banyan,但我感觉也不稳定,且不能超过2个断点。后来把中断初始化的pISR_EINT4567 = (int)Eint4567Isr;这行给去掉后就正常了。仔细想,这段只是个“地址链接”(不知道专业属语叫什么了)的作用,把中断服务函数的地址放到_ISR_STARTADDRESS+0x74这个地址来(后面说),而我的板是我自己买元件自己焊接的,当时就像配电脑一样,有些贪,板上本来是8MB的SDRAM,而我用的是16MB的SDRAM,这样当然影响_ISR_STARTADDRESS,但我在Option.s及Option.h里都改了呀!又找了两天(在深圳,业余时间少得可怜),实在找不着原因,于是不甘心就看44B0的存储器配置的资料,一个寄存器一个位的看,最后在BANKCON6的SCAN位找到了,00是8位SDRAN列地址,01是9位SDRAN列地址,而我2M*4B*16位的列地址应该是9位才对。改正以后,跳转到MAIN正常了。但用简易JTAG在目标板仿真在我按按键的时候还是不能跳到中断服务函数,软件(ARMUL)又不能模拟中断产生(这是我认为ADS做得不好的原因,也可能是用惯了KEIL吧)经查程序没问题,烧到板上运行一切正常!哎,不然又走弯路了!
第二个问题太啰嗦了,主要是怕和我一样的初学者看不懂,一个名詞就可能绕一个弯。我再说一下我对中断怎样链接到C程序的理解,虽然网上的解释很多,但我也觉得难理解(可能是我自己太笨吧,呵呵),它其实就是在Init.s和C程序跳到同一个地址实现的,如EINT4567就是_ISR_STARTADDRESS+0x74,在两个文件都有相关定义,因为硬件地址是固定不变的。
特此申明:本贴只适合没入门的朋友,已入门的看了我会脸红的!
UID
213743
帖子
22
精华
2
积分
65
阅读权限
10
在线时间
0 小时
注册时间
2006-3-21
最后登录
2006-6-16
查看详细资料
TOP
lumit-support-1
中级会员
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2006-6-1 17:52
只看该作者
不错,有什么好的想法和思路可以贴上来,共同学习
UID
201031
帖子
313
精华
0
积分
783
阅读权限
30
在线时间
4 小时
注册时间
2005-9-27
最后登录
2008-11-14
查看详细资料
TOP
honhaizh
中级会员
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2006-7-18 19:14
只看该作者
[quote:3344bebbed="lumit-support-1"]不错,有什么好的想法和思路可以贴上来,共同学习[/quote]
UID
159106
帖子
321
精华
0
积分
765
阅读权限
30
来自
China
在线时间
0 小时
注册时间
2004-10-11
最后登录
2007-6-30
查看详细资料
TOP
zhouzhou111
新手上路
发短消息
加为好友
当前离线
4
#
大
中
小
发表于 2006-8-25 09:30
只看该作者
我用的是三星的44B0开发板,在IAR开发环境下采用wiggler + H-JTAG
的简单调试,但一按debug,就提示告警,好象是没有启动代码的意思;我看了一个例程(LPC2103的开发板),需在项目里添加lpc21xx_cstartup.s79.
请问在哪里能找到44B0的cstartup.s79?
这个是不是44B0的启动代码?
初次ARM,调了几天了也没DEBUG起来,真真...
请回我的mail:
zxm_chinese@163.com
zxm_chinese@163.com
UID
224528
帖子
1
精华
0
积分
3
阅读权限
10
在线时间
0 小时
注册时间
2006-8-25
最后登录
2006-8-25
查看详细资料
TOP
fandeshun
新手上路
发短消息
加为好友
当前离线
5
#
大
中
小
发表于 2007-9-18 11:01
只看该作者
还有点问题!
写的太好了,我总算看到了入门希望.看了您写的帖子,我还想问个问题:JTAG小板不能仿真中断么?如果能仿真,怎么仿真?急需您的帮助,谢谢。
UID
243206
帖子
1
精华
0
积分
1
阅读权限
10
在线时间
1 小时
注册时间
2007-9-18
最后登录
2007-9-20
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
版块跳转
社区公告专栏:最新通知和公告
公告区
基础技术支持专栏:
系统安装
硬件配置
Magic Linux专版:
Magic Linux技术支持区
Magic Linux开发培训版
一般应用技巧专栏:
中文化与桌面美化
桌面使用小技巧
命令行使用小技巧与SHELL编程
应用解决方案专栏:
网络工具
办公软件
多媒体应用
游戏乐园
服务器与网络安全
Linux资源共享区
高级技术学习专栏:
Debian/LFS/Gentoo专题版
Linux高质量字体研究
easyright计算机研究所
Linux认证考试专题版
社区开源项目专栏
应用编程技术与项目孵化
网站开发技术与项目孵化
参与国际开源项目
翻译汉化
中文GNOME用户交流区
Skyeye项目专栏
lumit项目专栏
eva项目专栏
fanx及slax中文专栏
连连看for Linux项目专栏
OurLinux杂志专区
BitStorm项目专栏
RT-Thread实时操作系统
EGui开源项目
AVS项目专栏
VirgoFTP项目专栏
Linux内核研读区:公社内核阅读小组
内核源代码阅读交流
内核安装和升级
嵌入式开发
社区文化活动专栏:我们是一家人!
校园行动联盟
Linux与公社文化杂谈
请进公社总部:
公社接待中心
控制面板首页
编辑个人资料
积分交易
积分记录
公众用户组
访问推广
基本概况
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计