ARM学习培训资料9个doc4.docx

上传人:b****3 文档编号:1449757 上传时间:2022-10-22 格式:DOCX 页数:8 大小:81.59KB
下载 相关 举报
ARM学习培训资料9个doc4.docx_第1页
第1页 / 共8页
ARM学习培训资料9个doc4.docx_第2页
第2页 / 共8页
ARM学习培训资料9个doc4.docx_第3页
第3页 / 共8页
ARM学习培训资料9个doc4.docx_第4页
第4页 / 共8页
ARM学习培训资料9个doc4.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

ARM学习培训资料9个doc4.docx

《ARM学习培训资料9个doc4.docx》由会员分享,可在线阅读,更多相关《ARM学习培训资料9个doc4.docx(8页珍藏版)》请在冰豆网上搜索。

ARM学习培训资料9个doc4.docx

ARM学习培训资料9个doc4

ARM学习培训资料(9个doc)4

示灯是否亮了,电源只是灯亮度正常,那么你就已经成功了。

如果你在调试过程中,发现电源指示灯很暗的话,估计是某些电路是短路了,赶快拔掉电源,看一下是否某些芯片发热或者已经冒烟了…

记住:

有几个跳线一定要跳的,就是JP5﹑JP6﹑JP7一定要短路,如果不短路的话,你的所有电源都没有。

JP1不短路﹑JP2短路﹑JP3短路,他们分别对应OM0﹑OM1﹑OM1

JP8短接2—3。

确定是S3C44B0工作方式big mode 和little mode。

好了,如果全部正常的话,直接用JTAG调试板,连接好JTAG部分,启动WIN98,进入我给你的光盘,找到简单应用程序的目录。

里面有一个程序,是直接烧写S3C44B0的FLASH的。

在您烧写之前,查看JTAG连接是否正常,JTAG上的短路线是否已经短路,如果全部正常的话,直接进入烧写了。

在烧写之前有几个地方需要注意:

并口延长线分别连接PC机并行口和JTAG下载板,JTAG下载板通过扁平排线连接ARM板。

S3C44B0X有两个复位引脚,其中nRESET是CPU复位引脚,nTRST是JTAG单元复位引脚,一般的S3C44B0X系统都有一个跳线,用短路块将两个复位端连在一起,这样一按复位按键,两个复位引脚都复位了。

而JTAG下载板上面也有一个跳线,这个跳线是JTAG单元复位引脚。

在烧写Flash的时候,PC机会通过JTAG下载板上的那个跳线来复位ARM板的JTAG单元,所以应该用短路块将JTAG下载板上的跳线短路,而ARM板上的跳线(连接nRESET和nTRST)的则不应该短路;

全部准备好了,现在可以烧写代码了!

网上有一个叫Fluted.exe的程序,使用它就可以完成Flash烧写。

这里面针对不同的CPU还需要不同的Bsd文件,不同的Flash芯片需要对Fcd文件进行相应的修改。

S3C44B0X的BSD文件S3C44B0X.bsd可以在三星公司网站找到,适用于SST39VF160的fcd文件在网上搜索得到。

特别说明:

这个烧写Flash的程序只能在Windows98系统下才能运行!

不支持Windows2000、WindowsNT和WindowsXP,所有你需要切换到Windows98下面才能进行这项工作!

对于我的板子,使用SST39VF160,需要的S3C44B0X.bsd、default.fcd和Fluted.exe,将自己的目标代码model.bin与上面的三个文件放在同一个目录下面,运行Fluted.exe就可以进行Flash烧写了。

由于Fluted.exe要输入相应的配置参数,所以我干脆做了一个批处理文件f.bat:

FluteD a -f model.bin -v -s 0

这样运行这个批处理文件就可以开始烧写了,烧写界面如下:

 

 

如果你是自己设计ARM板,第一次烧写Flash,那么你可以检查一下系统:

首先看看CPU的各种电压是否正常,可以看看系统时钟输入的波形,32768晶体的一个引脚上应该能看到32768的正弦波。

如果是刚焊新的Flash,那么一般Flash里面数据都是0Xff,用示波器可以看到数据线都是高电平,地址线上面有规则的方波信号。

你一按复位按键,方波立马消失变成低电平。

如果写入成功的话,WRITE &&VIRIFY成功的话,你已经成功了……

恭喜你了!

很可能由于电源高频干扰或者错误接地,或者SST39VF160两个地址线短路出现清除FLASH,能够写入FLASH,可是VERIFY出错的问题,我遇到的就是那个两个地址线短路的情况,结果写入都正确,可是VERIFY时错误了, 

错误信息如下:

verify missed at 0x11111 orianglal :

0x20 jtag:

0x45

如果您在开发自己的开发板的时候也出现类似情况,我这里给你提示了,呵呵

成功已经离你不远了……

SDT软件篇

已经有了自己的平台,那么怎么样知道你的硬件是否真的好了呢?

唯一的办法就是用SDT进行调试硬件,我们正式开始我的下一篇—SDT软件篇。

(一) SDT软件的安装

点击SDT2.51安装程序中的setup.exe,出现如下安装界面:

 

接着出现如下画面:

 

然后出现拷贝文件过程如下:

 

安装完成时:

 

此处必须重新启动计算机,以使设置生效。

(二) 启动SDT2.51

安装完毕,点击程序组中的ARM Project Manager启动主程序,界面如下:

 

(三) 利用我提供的模板开始自己的项目

很多刚刚学习ARM的人往往会遇到这样一个问题:

自己写了程序,编译也通过了,结果怎么也生成不了二进制格式的目标代码(*.bin)。

如何生成目标代码需要参考SDT2.51安装文件夹pdf中的userguide.pdf,在它的392页有详细说明,教你怎么Converting ARM linker ELF output to binary ROM formats。

为了给大家带来方便,在我提供的小应程序中,可以将他保存为一个模板,操作如下

打开我提供的小应用程序的工程,点击菜单File下的Save As Template:

 

 然后在弹出的窗口中随意选择一个目录下,新建一个自己的文件夹,随便取一个Project名称,确认即可在主程序上出现新Project界面。

现在可以在刚才建立的文件夹下面编辑代码,包括汇编代码和C程序代码。

注意汇编代码必不可少,它是用来进行系统初始化和C程序入口的,这些范例代码可以在三星网站去下载。

(四) 如何添加自己的源码

点击菜单Project下的Add File To Project……,在弹出的窗口中,浏览自己的Project文件夹下面的程序代码,将代码添加到创建的项目。

这时依次点击rom、debug、Sources前面的十字架,就会看到自己刚才添加成功的代码,双击任何一个代码文件就可以打开它进行编辑:

说明:

SDT2.51好象有一个bug,当你直接双击一个代码文件时,可能会出现非法错误。

我的机器就是这样。

希望各位当编写代码时用uedit,这样比较方便。

 

 

(五) 生成可以在FLASH中运行的代码

编辑代码大家都会了,那么如何将自己写的代码放在FLASH中,并直接运行呢?

看过S3C44B0 DATASHEET的人或者知道计算机启动过程的人都会知道,BIOS是一个什么东西,

那么对于S3C44B0的启动也无非如此。

你生成的代码必须存放在0x00000000为开始的FLASH中,这样当S3C44B0复位的时候,从这里取指令执行。

那么如何设置呢?

如下:

 

点击ENTRY AND BASE,接着会出现如下对话框:

 

(六) 生成可在FLASH中运行的目标码

现在选择菜单build或者点击快捷图标就可以编译代码,点击Force build之后就生成了二进制目标代码(*.bin),这可以在项目文件夹下面找到。

在主程序窗口下面的信息框可以看到编译的情况,包括警告和错误信息,最终代码生成的情况等等;

 

好了,生成了bin文件。

下一步就可以进行写入FLASH里了。

(七) 写入可运行的目标码

激动人心的时刻就要到来了,如果你按照我的步骤一步一步走,离成功不远了!

检测硬件是否正常(按照我上诉硬件篇中的步骤)。

如果硬件准备就绪,写入目标码过程如下:

对于我的板子,使用SST39VF160,需要的S3C44B0X.bsd、default.fcd和Fluted.exe,将自己的目标代码model.bin与上面的三个文件放在同一个目录下面,运行Fluted.exe就可以进行Flash烧写了。

由于Fluted.exe要输入相应的配置参数,所以我干脆做了一个批处理文件f.bat:

FluteD a -f model.bin -v -s 0

这样运行这个批处理文件就可以开始烧写了,烧写界面如下:

 

这个程序首先打开fcd文件和bin文件,然后检查设备ID,如果ID错误的话程序会停止运行。

这意味着你的硬件系统有问题,或者JTAG接线有错误等等。

然后开始擦除FLASH里面的数据,根据Flash的大小擦除时间有长有短;擦除完毕就开始对Flash编程,将目标代码写进去。

编程完毕开始校验,如果出错会给出提示信息的,告诉你在哪个地址区域出错,写进去的数据是什么,读出来的数据又是什么,只有校验完全成功才是烧写OK!

一般朋友易犯的错误:

有些朋友将目标代码定位在0X0C000000,结果烧写后校验也完全成功了,但复位之后板子却没有任何反应!

这是因为写到SDRAM之后校验肯定也是对的,但复位之后程序是从0X00000000开始执行的,而不是从0X0C000000开始的,所有板子肯定没有反应了!

(八) 如何调试程序

各位朋友都知道,调试程序是在SDRAM中运行的,那么我们必须将自己编译好的程序放到SDRAM中,那么如何才能将程序放入SDRAM中呢?

操作如下:

就我的板子而言,SDRAM的片选引脚接在nSCS0上面,它的地址从0X0C000000开始,所有要把目标程序定位在这里。

如前面所说步骤,先单击一下主程序窗口ROM下的Debug,然后点击菜单中的set,在弹出的窗口中选择点击Entry And Base,在Read-only下面的框里面输入0X0c000000(程序空间),在Read-write下面的框里面输入0X0c5f0000(这是数据空间),确认即可:

 

按照上述步骤,设置SDT2.51,然后别忘了重新编译。

会生成AXF文件,这个文件就是我们要调试的程序了。

(九) 调试之前需要知道的……

SDT2.51支持软件仿真和硬件debug,默认是软件仿真,这个很简单,大家一看就会。

关键的是硬件debug,它支持串口、并口和以太网仿真,串口和并口我不知道怎么玩。

我的板子是通过并口JTAG进行硬件调试的,但实际上却是通过以太网的。

这里面有一个转换软件——JTAG.exe,它把发送到以太网的数据拦截下来,遵从JTAG协议,转换到并口上面,然后通过JTAG接口板,控制ARM板上面的CPU,进行硬件Debug。

JTAG.exe在王云飞的网页上面有下载,包括并口JTAG接口板的电路图,我就是照他的图纸做的板子。

需要说明一下:

JTAG.exe只能在Win98下运行,Win2000下不行,所以如果你要进行硬件仿真的话,必须切换到Win98系统下面。

这很不爽,哪位朋友找到能在Win2000下面跑的JTAG.exe的话,麻烦告诉我一声!

当然如果只是进行程序编写、编译、软件仿真,SDT2.51在Win98、Win2000和WinXP都没有问题的!

双击JTAG.exe,它就在后台运行了。

(十) 开始仿真了……

使用这种方式仿真,还要进行一些设置才行。

点击Debug菜单或者快捷图标,出现ARM Debugger程序窗口:

 

然后选择菜单Options下面的Config Debugger:

 

 

在Target Environment下面选择Remote_A,然后点击Configure:

 

选择Heartbeat,在Ethernet后面输入你的计算机IP地址并确认。

这里面肯定要你机器上面装有网卡,而且IP地址要指定了,如果是自动分配IP的话,就不太方便了,每次都要查找自己机子的IP。

(十一) 装载目标码到板子…

如果是第一次设置Debugger,确认以后,系统就会自动装载代码到ARM板上,你也可以点击Reload图标重新转载代码。

如果代码很大的话,时间会稍长一点,可能要几十秒,一般几秒就搞定,出现如下窗口:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1