ARM开发调试教程.
- 格式:doc
- 大小:39.00 KB
- 文档页数:5
ARM开发软件使用教程
二、工程创建
安装完成后,打开ARM开发软件,点击“新建工程”按钮。
在弹出的
对话框中,选择工程类型和工程名称,并选择工程保存的目录。
点击“确定”按钮完成工程创建。
三、代码编写
四、编译调试
五、调试工具
ARM开发软件提供了强大的调试工具,包括调试器、仿真器等。
通过
调试工具可以实时监测程序的运行状态、寄存器的值、内存的使用情况等。
在调试过程中,可以使用调试工具进行断点设置、变量监视等操作,以辅
助调试工作。
六、调试技巧
ARM开发软件的调试过程中,可以使用一些技巧提高调试效率。
比如,使用断点进行程序的停留,通过查看寄存器的变化情况来分析程序的运行
状态。
还可以使用观察窗口实时监测变量的值,通过调试输出窗口打印调
试信息等。
七、其他功能
除了上述基本功能外,ARM开发软件还提供了其他一些功能,如性能
分析、代码优化等。
性能分析功能可以帮助开发者找出程序的性能瓶颈,
对代码进行优化改进。
代码优化功能可以将代码进行优化,提高程序的执
行效率。
总结:。
ARM开发调试教程作者:李希岗创建日期:2003年5月20日修改日期:2003年5月20日版本:说明:本文是我学习ARM开发以来的一些经验总结,以自己设计的S3C44B0X板为例,给出我调试开发ARM开发板的一些最基础知识。
我只是在自己的开发板调试过并且经验有限,有些知识只能做为参考,不一定准确,就算给大家一个“例程”吧,如果大家有不同意见,希望多多指正!硬件篇(一)开发板的整体架构我设计的开发板是在三星44B0 demo板的基础上,参考网络上相关的资料,加入我的思想开发的。
以下是该开发板的整体架构:(二)开发板的焊接贴片式元器件的拆卸、焊接宜选用200~280℃调温式尖头烙铁。
贴片式电阻器、电容器的基片大多采用陶瓷材料制作,这种材料受碰撞易破裂,因此在拆卸、焊接时应掌握控温、预热、轻触等技巧。
控温是指焊接温度应控制在200~250℃左右。
预热指将待焊接的元件先放在100℃左右的环境里预热1~2分钟,防止元件突然受热膨胀损坏。
轻触是指操作时烙铁头应先对印制板的焊点或导带加热,尽量不要碰到元件。
另外还要控制每次焊接时间在3秒钟左右,焊接完毕后让电路板在常温下自然冷却。
以上方法和技巧同样适用于贴片式晶体二、三极管的焊接。
贴片式集成电路的引脚数量多、间距窄、硬度小,如果焊接温度不当,极易造成引脚焊锡短路、虚焊或印制线路铜箔脱离印制板等故障。
拆卸贴片式集成电路时,可将调温烙铁温度调至260℃左右,用烙铁头配合吸锡器将集成电路引脚焊锡全部吸除后,用尖嘴镊子轻轻插入集成电路底部,一边用烙铁加热,一边用镊子逐个轻轻提起集成电路引脚,使集成电路引脚逐渐与印制板脱离。
用镊子提起集成电路时一定要随烙铁加热的部位同步进行,防止操之过急将线路板损坏。
换入新集成电路前要将原集成电路留下的焊锡全部清除,保证焊盘的平整清洁。
然后将待焊集成电路引脚用细砂纸打磨清洁,均匀搪锡,再将待焊集成电路脚位对准印制板相应焊点,焊接时用手轻压在集成电路表面,防止集成电路移动,另一只手操作电烙铁蘸适量焊锡将集成电路四角的引脚与线路板焊接固定后,再次检查确认集成电路型号与方向,正确后正式焊接,将烙铁温度调节在250℃左右,一只手持烙铁给集成电路引脚加热,另一只手将焊锡丝送往加热引脚焊接,直至全部引脚加热焊接完毕,最后仔细检查和排除引脚短路和虚焊,待焊点自然冷却后,用毛刷蘸无水酒精再次清洁线路板和焊点,防止遗留焊渣。
第五讲嵌入式系统开发和调试原理Sep 2007数据处理指令-第二个操作数Sep 2007跳转的实现Sep 2007前变址和后变址寻址Sep 2007堆栈操作¾ARM的堆栈操作由块传送指令来实现Sep 2007Software Interruptspart and optional C partSep 2007ATPCS介绍-寄存器的使用规则Sep 2007第五讲嵌入式系统开发和调试原理Sep 2007嵌入式系统调试的需求Sep 2007PC 上的调试Sep 2007嵌入式系统的开发过程Sep 2007交叉编译环境Sep 2007嵌入式系统调试的一般方法Sep 2007交叉编译环境的内容Sep 2007第五讲嵌入式系统开发和调试原理Sep 20071. ADS开发环境Sep 20071. ADS开发环境Sep 20071. ADS开发环境Sep 2007程序举例Sep 2007第五讲嵌入式系统开发和调试原理Sep 2007调试工具和方法分类嵌入式系统的调试工具基于主机的调试 指令集模拟器 OS模拟器 GUI模拟器(应用程序开发) 基于硬件的调试工具和方法。
在线仿真器:使用硬件仿真芯片和仿真内存,连接困难,价格昂贵。
如常见的51仿真器(替代处理器) Rom 仿真器 :替代目标系统的ROM存储器,价格低廉的调试手段, 功能比较简单 驻留监控软件(Resident Monitors): BDM仿真技术:摩托罗拉公司处理器芯片采用的一种方式, POWERPC等。
片内内置调试电路和微码程序,通过串口调试 JTAG仿真技术:目前主流。
通过JTAG芯片测试接口和内部片上调试 逻辑通信,实现调试Sep 2007No. 21指令集模拟器利用在宿主机(一般是PC) 的资源构建一个虚拟的目标 机系统,该系统通过解释执 行目标处理器的二进制代码 来仿真运行目标程序 ARM Armulator-模拟 运行ARM指令系统App1 App1App2 App2….App n App n目标机的RTOS 目标机的RTOS 虚拟机构建的环境:寄存器,存储器等等 VM(虚拟机) VM(虚拟机) PC OS (MS Windows) PC OS (MS Windows) PC PCSep 2007No. 22ARMULATOR 软件仿真器ARMulator(ARM仿真器):是一个指令级的仿真程序, 运行在主机上没有硬件的情况下,调试应用程序 ARMulator可以报告各指令执行时的机器周期,所以也可以用来进行应用 程序的性能分析。
ARM开发板使用手册PHILIP LPC2132ARM7TDMI第一章介绍LPC2132开发板是专门为arm 初学者开发的实验板,用户可以做基础的arm实验,也可以做基于ucos-ii的操作系统实验。
本系统的实验源代码全部开放,用户可以在此基础上开发产品,减少重复劳动。
由于LPC2132体积很小,并且功能强大,因此特别适合需要复杂智能控制的场合,其运行速度高于早期的80486计算机,而体积只有指甲大。
我们已经将LPC2132产品成功应用在干扰比较强的工业场合,经过6个月的运行,各项指标符合要求。
因此我们特别推荐这一款开发板作为ARM初学者入门。
由于此款开发板体积很小,非常适合直接应用在工业以及民用智能控制器的场合。
LPC2132 CPU介绍LPC2131/2132/2138 是基于一个支持实时仿真和跟踪的16/32 位ARM7TDMI-STM CPU,并带有32kB、64kB 和512kB 嵌入的高速Flash 存储器。
128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。
对代码规模有严格控制的应用可使用16 位Thumb 模式将代码规模降低超过30%,而性能的损失却很小。
较小的封装和很低的功耗使LPC2131/2132/2138 特别适用于访问控制和POS 机等小型应用中;由于内置了宽范围的串行通信接口和8/16/32kB 的片内SRAM,它们也非常适合于通信网关、协议转换器、软件modem、语音识别、低端成像,为这些应用提供大规模的缓冲区和强大的处理功能。
多个32 位定时器、1个或2 个10 位8 路的ADC、10 位DAC、PWM 通道、47 个GPIO 以及多达9 个边沿或电平触发的外部中断使它们特别适用于工业控制应用以及医疗系统。
主要特性●●16/32 位ARM7TDMI-S 核,超小LQFP64 封装。
●●8/16/32kB 的片内静态RAM 和32/64/512kB 的片内Flash 程序存储器。
ARM JTAG 调试原理OPEN-JTAG开发小组 1 前言这篇文章主要介绍ARM JTAG调试的基本原理。
基本的内容包括了TAP (TEST ACCESS PORT) 和BOUNDARY-SCAN ARCHITECTURE的介绍,在此基础上,结合ARM7TDMI详细介绍了的JTAG调试原理。
这篇文章主要是总结了前段时间的一些心得体会,希望对想了解ARM JTAG调试的网友们有所帮助。
我个人对ARM JTAG的理解还不是很透彻,在文章中,难免会有偏失和不准确的地方,希望精通JTAG调试原理的大侠们不要拍砖,有什么问题提出来,我一定尽力纠正。
同时也欢迎对ARM JTAG调试感兴趣的朋友们一起交流学习。
2 IEEE Standard 1149.1 - Test Access Port and Boundary-Scan Architecture既然是介绍JTAG调试,还是让我们从IEEE的JTAG调试标准开始吧。
JTAG是JOINT TEST ACTION GROUP的简称。
IEEE 1149.1标准就是由JTAG这个组织最初提出的,最终由IEEE批准并且标准化的。
所以,这个IEEE 1149.1这个标准一般也俗称JTAG调试标准。
接下来的这一部分,主要简单的介绍了TAP (TEST ACCESS PORT) 和BOUNDARY-SCAN ARCHITECTURE的基本构架。
虽然不是很全面,但对了解JTAG的基本原理来说,应该是差不离了。
如果希望更全面深入的了解JTAG的工作原理,可以参考IEEE 1149.1标准。
2-1 边界扫描在JTAG调试当中,边界扫描(Boundary-Scan)是一个很重要的概念。
边界扫描技术的基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。
因为这些移位寄存器单元都分布在芯片的边界上(周围),所以被称为边界扫描寄存器(Boundary-Scan Register Cell)。
ARM开发软件使用教程作者:龚俊Email:gongjun98@ QQ:63505043创建日期:2003年1月21日修改日期:2003年1月24日版本:1.2说明:本文是根据我学习ARM开发以来的一些经验总结,以自己设计的S3C44B0X板为例,给出入门上手的最基础知识。
有些东西只是个人的主观认为,不一定准确,算作抛砖引玉吧,欢迎大家指正!Emai或QQ联系,希望广交各位朋友,共同提高!一、安装SDT2.51点击SDT2.51安装程序中的setup.exe,出现如下安装界面:一路点击next继续,一般默认设置就行了,不需作任何修改了,最后完成安装,我是安装在C:\ARM251下面;二、启动SDT2.51安装完毕,点击程序组中的ARM Project Manager启动主程序:之后出现主程序界面如下:很多初学者会遇到这样一个问题:自己写了程序,编译也通过了,结果怎么也生成不了二进制格式的目标代码(*.bin)。
如何生成目标代码需要参考SDT2.51安装文件夹pdf中的userguide.pdf,在它的392页有详细说明,教你怎么Converting ARM linker ELF output to binary ROM formats。
为了减少大家的麻烦,我提供一个模板Project,你打开我这个Project,然后点击菜单File下的Save As Template:然后在弹出的窗口中随意选择一个目录下,新建一个自己的文件夹,随便取一个Project 名称,确认即可在主程序上出现新Project界面。
现在可以在刚才建立的文件夹下面编辑代码,包括汇编代码和C程序代码。
注意汇编代码必不可少,它是用来进行系统初始化和C程序入口的,这些范例代码可以在三星网站去下载,网上也有很多相关资源,如果找不到也可以找我要。
四、添加自己的源码点击菜单Project下的Add File To Project……,在弹出的窗口中,浏览自己的Project文件夹下面的程序代码,将代码添加到创建的项目。
arm调试内核寄存器的方法使用ARM调试内核寄存器的方法引言:在软件开发和调试过程中,经常需要查看和修改CPU的寄存器值。
而对于ARM架构的处理器,了解如何调试内核寄存器值是非常重要的。
本文将介绍一些常用的方法和工具,帮助开发者在ARM平台上进行内核寄存器的调试。
一、使用GDB调试器GDB是一款功能强大的开源调试器,可以用于调试多种编程语言和平台。
在ARM架构上,可以使用GDB调试器来查看和修改内核寄存器的值。
1. 准备工作需要安装GDB工具链,并将其添加到系统的环境变量中。
然后,在编译内核时,需要在配置文件中启用GDB调试支持选项,以生成可调试的内核映像。
2. 连接调试器将目标设备与主机通过调试接口(如JTAG、SWD)连接起来。
然后,在主机上运行GDB,并使用以下命令连接到目标设备:```$ gdb <kernel_image>```3. 设置断点在GDB中,可以使用`break`命令设置断点。
例如,要在内核函数`foo`的入口处设置断点,可以使用以下命令:```(gdb) break foo```4. 运行程序使用`run`命令启动目标设备上的程序,并让其执行到断点处。
当程序停止时,可以使用`info registers`命令查看所有寄存器的值。
5. 查看寄存器值使用`info registers`命令可以列出所有寄存器的值。
例如,要查看R0寄存器的值,可以使用以下命令:```(gdb) info registers r0```6. 修改寄存器值使用`set`命令可以修改寄存器的值。
例如,要将R0寄存器的值修改为0x1234,可以使用以下命令:```(gdb) set $r0 = 0x1234```二、使用JTAG调试器JTAG调试器是一种常用的硬件调试工具,也可以用于调试ARM架构的处理器。
它可以提供更低层次的访问权限,可以直接读写寄存器的值。
1. 准备工作需要将目标设备与JTAG调试器连接起来,并确保JTAG调试器的驱动程序已正确安装。
实验一 LED实验内容:八盏LED灯就会向右点亮文件包:boot方法:用SDRAM 调试先把映像文件下载到SDRAM 里,然后进行调试。
需要修改RO BASE为0xa0000000,其他不用修改,重新编译下载就可运行。
实验二键盘实验内容:本实验采用了直连键盘(1~4)对LED数码管进行控制。
文件包:Timer方法:用FLASH 调试,使用JFLASHMM 下载当按1键的时候,LED1数码管1234就会亮,同理,按相应的键,相应的数码管就会亮。
flash调试时需要修改RO BASE为0x00000000,其他不用修改,重新编译下载就可运行。
①将编译连接生成的.bin文件拷贝到D:\Jflash_Pxa270_P30目录下②打开CMD命令行窗口,在命令提示符中运行命令:jflashmm.exe pxa270 xxx.bin ,就可以把xxx.bin 下载到FLASH 里面了。
实验三 LCD控制器实验实验内容:本实验得到的结果为,LCD显示屏会循环显示白、黑、蓝、红、绿和灰这六种颜色,并且显示“亿道电子技术”这些字符。
文件包:LCD方法:用FLASH 调试使用H-JTAG 下载在flash调试时,需要修改RO BASE为0x00000000,不要对RW BASE进行设置,否则LCD屏的字体就无法正常显示。
实验四步进电机实验实验内容:步进电机转动文件包:stepMotor方法:用FLASH 调试使用H-JTAG 下载在flash调试时,需要修改RO BASE为0x00000000一、H-JTAG软件安装以及配置H-JTAG软件是免费JTAG调试和Flasher擦写软件,通过并口线连接目标板。
此软件针对EEliod开发平台和XSBASE 270-S开发板(或其它PXA270的开发板),需要进行配置才能正常工作。
1.安装H-JTAG软件,解压H-JTAG0.7x.rar,运行H-JTAG0.7x.exe,按照默认路径安装即可。
ARM-Linux 内核调试方法讨论1 概述由于ARM Linux不像桌面系统那样所见所得,很多时候是嵌入式的无终端的系统,更不像windows这样的系统软件开发那样开发主机和开发软件可以运行在同一个系统下,借助print、gdb等很容易调试。
因此ARM Linux内核的调试,由于其中牵涉启动流程,MMU,Driver等,并且Linux 内核开发者没有在内核里植入一个内核调试器,他们认为调试器会破坏内核的完整性,并添入其他不可预知的问题,因此内核调试显得很重要,并有一定的难度,本文试着讨论ARM Linux内核的调试方法。
下面就本人熟悉的几种调试技术进行说明。
2 GPIO控制(点灯)GPIO控制(俗称点灯),主要是bootloader和内核进入C环境之前的调试手段,主要做法是:1、在ARM Linux里,硬件工程师一般都会在硬件板上设计几个led灯,用于指示系统的运行,硬件的读写等;2、根据DataSheet,查找GPIO的地址,编写点灯程序,确认点灯程序的正确性;3、在需要验证代码执行的地方,植入点灯程序,查看GPIO电平的变化,或使用led 的闪烁,来判断程序是否运行;4、点灯程序一般运行在MMU没有开启的时段,如果MMU开启之后还需要使用点灯来调试kernel,需要将点灯程序GPIO的地址进行virt to phys的转换,否则不仅不能正确使用,还会引起内存访问错误segment fault;3 printkprintk() 是调试内核代码时最常用的一种技术。
在内核代码中的特定位置加入printk() 调试调用,可以直接把所关心的信息打打印到屏幕上,从而可以观察程序的执行路径和所关心的变量、指针等信息。
就本人的经验作以下说明:1、printk只能在内核的终端驱动加载之后才能正确输出,终端一般为串口;2、在驱动加载之前,printk可以使用,但是并不会有输出,内核会把需要的打印信息保存在一个buffer里,等到driver加载完成,一并输出。
ARM外部调试断点指令1. 什么是ARM外部调试断点指令ARM外部调试断点指令是一种用于调试ARM架构处理器的指令。
在软件开发过程中,调试是一个必不可少的环节,而断点是调试过程中常用的技术之一。
断点指令能够在程序执行到指定位置时暂停程序的执行,这样可以方便地进行调试和分析。
在ARM架构中,通常使用调试器来实现调试功能。
调试器可以通过连接到目标系统的调试接口,与系统进行通信,并发送断点指令来控制程序的执行。
ARM外部调试断点指令就是调试器发送给目标系统的指令,用于设置断点和控制程序的执行。
2. ARM外部调试断点指令的种类ARM外部调试断点指令可以分为软件断点和硬件断点两种类型。
2.1 软件断点软件断点是通过在目标程序的指令中插入特殊的指令来实现的。
当程序执行到这个特殊的指令时,会触发断点,程序的执行会被暂停。
软件断点的优点是灵活性高,可以设置在任意指令上,但是由于需要修改目标程序的指令,所以对于只读存储器的目标系统来说,软件断点可能无法使用。
软件断点的实现原理是将目标指令替换为断点指令,当程序执行到这个断点指令时,会触发中断异常,调试器会捕获这个异常并暂停程序的执行。
在ARM架构中,常用的软件断点指令是BKPT指令,它的操作码是0xE1200070。
2.2 硬件断点硬件断点是通过目标系统的调试接口来实现的。
调试接口通常是通过JTAG或SWD接口与目标系统相连,调试器可以通过这个接口来读写目标系统的寄存器,并设置硬件断点。
硬件断点的优点是速度快、精确度高,可以设置多个断点,而且不需要修改目标程序的指令。
硬件断点的实现原理是在目标系统的调试接口中插入断点触发逻辑,当程序执行到设置的断点位置时,会触发调试接口的中断信号,调试器会捕获这个中断信号并暂停程序的执行。
硬件断点的具体实现方式和数量取决于目标系统和调试器的支持情况,常见的硬件断点指令包括BKPT指令、BRK指令等。
3. ARM外部调试断点指令的使用方法ARM外部调试断点指令的使用方法主要包括以下几个步骤:3.1 连接目标系统和调试器首先,需要将调试器通过JTAG或SWD接口连接到目标系统。
ARM开发调试教程作者:李希岗创建日期:2003年5月20日修改日期:2003年5月20日版本:1.0说明:本文是我学习ARM开发以来的一些经验总结,以自己设计的S3C44B0X板为例,给出我调试开发ARM开发板的一些最基础知识。
我只是在自己的开发板调试过并且经验有限,有些知识只能做为参考,不一定准确,就算给大家一个“例程”吧,如果大家有不同意见,希望多多指正!硬件篇(一)开发板的整体架构我设计的开发板是在三星44B0 demo板的基础上,参考网络上相关的资料,加入我的思想开发的。
以下是该开发板的整体架构:(二)开发板的焊接贴片式元器件的拆卸、焊接宜选用200~280℃调温式尖头烙铁。
贴片式电阻器、电容器的基片大多采用陶瓷材料制作,这种材料受碰撞易破裂,因此在拆卸、焊接时应掌握控温、预热、轻触等技巧。
控温是指焊接温度应控制在200~250℃左右。
预热指将待焊接的元件先放在100℃左右的环境里预热1~2分钟,防止元件突然受热膨胀损坏。
轻触是指操作时烙铁头应先对印制板的焊点或导带加热,尽量不要碰到元件。
另外还要控制每次焊接时间在3秒钟左右,焊接完毕后让电路板在常温下自然冷却。
以上方法和技巧同样适用于贴片式晶体二、三极管的焊接。
贴片式集成电路的引脚数量多、间距窄、硬度小,如果焊接温度不当,极易造成引脚焊锡短路、虚焊或印制线路铜箔脱离印制板等故障。
拆卸贴片式集成电路时,可将调温烙铁温度调至260℃左右,用烙铁头配合吸锡器将集成电路引脚焊锡全部吸除后,用尖嘴镊子轻轻插入集成电路底部,一边用烙铁加热,一边用镊子逐个轻轻提起集成电路引脚,使集成电路引脚逐渐与印制板脱离。
用镊子提起集成电路时一定要随烙铁加热的部位同步进行,防止操之过急将线路板损坏。
换入新集成电路前要将原集成电路留下的焊锡全部清除,保证焊盘的平整清洁。
然后将待焊集成电路引脚用细砂纸打磨清洁,均匀搪锡,再将待焊集成电路脚位对准印制板相应焊点,焊接时用手轻压在集成电路表面,防止集成电路移动,另一只手操作电烙铁蘸适量焊锡将集成电路四角的引脚与线路板焊接固定后,再次检查确认集成电路型号与方向,正确后正式焊接,将烙铁温度调节在250℃左右,一只手持烙铁给集成电路引脚加热,另一只手将焊锡丝送往加热引脚焊接,直至全部引脚加热焊接完毕,最后仔细检查和排除引脚短路和虚焊,待焊点自然冷却后,用毛刷蘸无水酒精再次清洁线路板和焊点,防止遗留焊渣。
检修模块电路板故障前,宜先用毛刷蘸无水酒精清理印制板,清除板上灰尘、焊渣等杂物,并观察原电路板是否存在虚焊或焊渣短路等现象,以及早发现故障点,节省检修时间。
一点点建议:建议您先焊接一些主要的器件,比如说S3C44B0﹑SST39VF160﹑HY57V641620﹑JTAG ﹑复位电路﹑电源部分,这样您焊接好后,就可以进行FLASH的直接烧写,确定FLASH的功能是否正确。
(三)开发板电源调试焊接过后的电路板,很可能存在短路﹑虚焊的情况,如果你此时直接通入电源的话,很可能造成主芯片的发热和烧毁,我已经出现这样的情况了,焊接好电路后,直接通入电源,FLASH就开始发热,直到烫手…此时一定不要轻举妄动,都花一点时间测试电源部分的正确。
比如测试S3C44B0的电源是否正确,包括+3.3V和+2.5V,如果不正确,立刻进行检测,看是否有错误的情况。
应该接电源的脚分别如下:接+3.3V的引脚:9脚﹑47脚﹑125脚接+2.5V的引脚:138脚﹑109脚﹑62脚﹑34脚﹑21脚如果测试完全正常,那么就要开始检测s3c44B0的电源地是否正确,正常情况下有如下引脚应该接地,如果没有接地的话,可以判断已经断路。
应该接地的引脚如下:应该接地的引脚:10脚﹑22脚﹑35脚﹑48脚﹑63脚﹑73脚﹑74脚﹑90脚﹑110脚﹑126脚﹑139脚﹑152脚上述引脚有的并非地线,电路只有将该脚接地才可以工作。
(四)开发板调试的第一步呵呵,如果您的焊接方法没有问题,电源完全是好的,那么你就已经成功一半了。
试通电一次,看电源指示灯是否亮了,电源只是灯亮度正常,那么你就已经成功了。
如果你在调试过程中,发现电源指示灯很暗的话,估计是某些电路是短路了,赶快拔掉电源,看一下是否某些芯片发热或者已经冒烟了…记住:有几个跳线一定要跳的,就是JP5﹑JP6﹑JP7一定要短路,如果不短路的话,你的所有电源都没有。
JP1不短路﹑JP2短路﹑JP3短路,他们分别对应OM0﹑OM1﹑OM1JP8短接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),这可以在项目文件夹下面找到。