这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [讨论]这个ARM最基本的问题大家清楚么?

共23条 1/3 1 2 3 跳转至

[讨论]这个ARM最基本的问题大家清楚么?

菜鸟
2005-12-27 19:13:08     打赏

请问这个执行过程是如何进行的?首先我介绍一下我的板子,三星44B0的板子,就是中国EDA技术网和上海勤研联合制造的号称豪华板的那块,相信大家都不陌生。使用SDT和JTAG口进行调试,板子刚来的时候,ROM里面有启动代码,这个启动代码的功能就是定义了复位、中断处理程序入口、对基本寄存器进行初始化以及定位堆栈地址和空间等,并从复位程序跳转到C语言程序中的main。板子有了这个启动代码然后就可以使用SDT进行调试,单步执行什么的都可以,当然了,你要把你的调试程序的RO、RW地址设到一般0x0C000000,0x0C5f0000,就是说在仿真调试的时候,要把程序空间和变量空间都设在SDRAM上。那么问题就出来了,

第一个问题:现在板子上本身有个程序,在那循环一直跑着,现在又往SDRAM里面搞了个,那么它们俩之间是什么关系,如何从第一个程序转到第二个程序--即我调试的程序?

第二个问题:假设没有这个启动代码程序,我还能调试我的程序么?例如,我就简单的写个串口输出程序,或者LED闪烁程序?

第三个问题:假设你们说了,必须要有这个启动代码,要先配置好系统(SDRAM配置等等,以及前面说的哪些),那么我想说的是,这个启动代码是不是就是大家常见的那个44binit.s文件编译后产生的二进制文件?




关键词: 讨论     这个     基本     问题     大家     清楚     程序    

菜鸟
2005-12-27 19:54:00     打赏
2楼

1. 调试的时候,仿真器会把CPU先停下来,然后下载程序,然后设置好PC的。所以,SDRAM里面原来的程序对你要调试的程序是没有影响的;
2. 没有启动代码,也能调试;但你必须自己通过命令行配置好SDRAM,其目的和启动程序应该是一样的;
3. 这个不清楚了,因为没有用过豪华板;


菜鸟
2005-12-27 21:45:00     打赏
3楼

多谢twentyone!

我现在发现一个奇怪的现象,那就是当使用SDT的Debugger时,单步第一步就跑飞


菜鸟
2005-12-27 22:03:00     打赏
4楼

没有办法贴图片,我只有描绘一下了,在ARM-Executeion Windows窗口,显示

0xffffffe4 swinv oxffffff

0xffffffe8 swinv oxffffff

0xffffffec swinv oxffffff

0xfffffff0 swinv oxffffff

.......

一个窗口都是这样,是怎么回事呢?首先板子没有问题,因为我烧了一个51EDA网提供的测试程序,也能跑,它在串口中输出:**********************************************************************
★SAMSUNG S3C44B0X开发板(豪华版)
★中国EDA技术网 www.51EDA.com

S3C44B0X测试程序 V1.0
系统主频 = 32MHz
串口选择COM0
串口波特率 = 115200bps
更新日期:2003-12-23 9:56

Image$$RO$$Base = 0
Image$$RO$$Limit = 1308c
Image$$RW$$Base = c100000
Image$$RW$$Limit = c100800
Image$$ZI$$Base = c10018c
Image$$ZI$$Limit = c100800
**********************************************************************


★中国EDA技术网 www.51EDA.com S3C44B0X开发板豪华版测试程序:
0:About 1:Lcd Mono 2:Lcd G4 3:Lcd G16
4:SL_IDLE Mode 5:SL_IDLE Mode20 6:IDLE Mode 7:IDLE(hard)
8:nWAIT pin 9:nXDREQ0 10:Cache 11:Adc 0,1,2,3
12:Adc with DMA 13:UART 0 14:UART 0 FIFO 15:UART 1
16:UART 1 FIFO 17:SLOW Mode 18:HOLD Mode 19:STOP Mode
20:Zdma0 21:Zdma1 22:SIO Tx/Rx 23:SIO Tx BDMA0
24:SIO Rx BDMA1 25:WDTimer 26:RTC(display) 27:RTC(Test)
28:RTC Tick 29:IIC(KS24C080) 30:IIS(uda1341) 31:IIS Tx(Slave)
32:IIS Rx(Master) 33:Timer Int 34:Tout test 35:Ext. Int
36:Etc... 37:Change PLL 38:Test AFC(Tx) 39:Test AFC(Rx)
40:Write flash

请输入数字选择一项功能进行测试:

**********************************************************************

我是在烧写了这个测试程序后来调试我的程序的,我的程序应该没有问题,因为以前都能一步一步调试,这个板子刚回来时,里面是带有一个启动代码的,那时,我也能正常的在它上面调试,有一次不小心把它擦除了,所以我就在网上找了个上面说的这个51EDA网提供的测试程序,是不是原因在这呢?请分析一下吧


菜鸟
2005-12-27 22:57:00     打赏
5楼

你第一步就跑飞,很有可能是SDT设置的问题。
你把VECTOR CATCH和SEMIHOSTING都给关掉吧,设置如下:

ARM DEBUGGER -〉 View -〉 Debugger Internals -〉 Vector_Catch -〉 把大写字母改成小写的
ARM DEBUGGER -〉 View -〉 Debugger Internals -〉 Semihosting_Enabled -〉 0x0


菜鸟
2005-12-28 00:33:00     打赏
6楼

不行啊,一点击Debugger Internals,就产生错误,然后就被windows关闭了,是怎么回事啊?另外大侠的H-JTAG和那个JTAG代理软件有什么区别?调试方法发生变化了么?多谢大侠指点


菜鸟
2005-12-28 02:04:00     打赏
7楼

H-JTAG和别的调试代理的工作原理是一样的。

你在调试的过程当中,程序下载是否正确?


菜鸟
2005-12-28 17:29:00     打赏
8楼
应该是正确的吧,但是我也不敢肯定,因为我不知道从何判断真的下载正确,我把我下载完但是未点击单步执行前的界面截图贴出来,请大侠看看,贴图中有JTAG那个软件的显示信息,我想大侠应该用得着。我把图发到大侠的信箱了,hotmail的那个。

菜鸟
2005-12-28 18:04:00     打赏
9楼

老兄,刚看过你的EMAIL,你好像都没有运行H-JTAG呀?

你到我BLOG上下载H-JTAG BUILD051220,安装后运行。然后配置一下SDT。具体配置你可以在我的BLOG的Q&A上找。

[align=right][color=#000066][此贴子已经被作者于2005-12-28 10:18:51编辑过][/color][/align]

菜鸟
2005-12-28 18:22:00     打赏
10楼
我使用的不是H-JTAG,是JTAG,就是DOS窗口的那个,就是命令行C:\jtag\AllowIo Jtag.exe /a的那个,大侠的H-JTAG,我还没来得及看,马上就去试试H-JTAG

共23条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]