利用ADS1.2和JLINK V8搭建ARM7开发平台
来源:互联网 发布:淘宝店铺标志300x300 编辑:程序博客网 时间:2024/06/05 04:16
硬件资源:一块以ARM7(LPC2119)为核心的电路板,Jlink v8仿真器,LONGWEIPS-305DM直流稳压电源,笔记本电脑(安装win7旗舰版)
软件资源:ADS1.2 Jlink v8驱动Setup_JLinkARM_V408i
最近需要用到LPC2119这款芯片,可手头没有这款芯片的仿真器,上网一查周立功公司的仿真器AK100某宝上最便宜也要1.8K,这个....囊中羞涩啊。LZ我忽然想到以前用ADS1.2搞S3C2440开发时用的是Jlink v8仿真器,这个仿真器能不能用到LPC2119这款芯片呢?于是乎赶忙问度娘,查资料得知有Jlink v8支持LPC2119芯片,欣喜万分,立马开始尝试。
由于我现有的电路板上已经焊好了下载插槽为单排8针插槽,和我现有的Jlink v8 2*4插槽无法搭配使用,但是Jlink v8仿真器的转接板上有2*7 、2*10等多种插针,于是乎我就拿现有的杜邦线从转接板的插针引出,而杜邦线也插上一排插针,将转接板上引出的线和电路板插槽一一对应上(nTRST、TDI、TMS、TCK、RTCK、TDO、nRST、VDD)。将线练好,电路板上电,启动ADS方针DEBUG(前提是安装好JLINK驱动,并配置好,可百度Jlink v8 用户手册,上面有详细操作教程),发现报错,一直出现low voltage,这下子可把我弄懵了,我查是否线没接好、芯片供电是否正常....搜百度搜了很多资料 没有相关解释,没办法我又仔细研究Jlink v8的硬件结构,一个个端口测试电压 是否正常,最后发现有Jlink v8上有个Vref 一直为低,而看数据手册上应该与Vdd相连 为3.3v,于是将Vref飞线连上了Vdd3.3v,问题解决了.....可是留下一个问题,为什么我以前用Jlink v8烧写S3C2440程序时没有报错呢??
当我编好程序down到目标板,嘿,又给我出难题了。进不了中断,这可我接纳闷了,赶紧找原因,首先检查一遍中断的相关初始化程序是否有误,是否屏蔽中断,没问题,看看内存里面中断标志是否置位,奇了怪了,我中断标志是置位了,可是就是进不了中断服务程序,查看其它与中断相关的寄存器,发现CPSR寄存器有异常。这下就和ARM7的启动代码相关了,搜寻网络资料发现,可能引起无法触发中断的可能原因有以下两点
1.请注意你的程序调试方式选择,若选择DebugInFlash或RelInFlash,程序入口地址应为:0x00000000;若选择DebugInRam,程序的入口地址应为:0x40000000。
我下载的周立功的工程模板,里面已经将入口地址正确设置了,所以排除了这个原因。
2.在Startup.s文件中初始化堆栈函数设置有误
我下载的原版的工程模板中代码如下
InitStack MOV R0, LR;Build the SVC stack;设置管理模式堆栈 MSR CPSR_c, #0xd3 LDR SP, StackSvc;Build the IRQ stack;设置中断模式堆栈 MSR CPSR_c, #0xd2 LDR SP, StackIrq;Build the FIQ stack;设置快速中断模式堆栈 MSR CPSR_c, #0xd1 LDR SP, StackFiq;Build the DATAABORT stack;设置中止模式堆栈 MSR CPSR_c, #0xd7 LDR SP, StackAbt;Build the UDF stack;设置未定义模式堆栈 MSR CPSR_c, #0xdb LDR SP, StackUnd;Build the SYS stack;设置系统模式堆栈 MSR CPSR_c, #0xdf LDR SP, =StackUsr MOV PC, R0
最后一句 MSR CPSR_c,#0xdf。这就出问题了,将IRQ中断屏蔽掉了,本人汇编都还给老师了,所以就不在此贻笑大方了。关于启动代码解读可参考:http://blog.chinaunix.net/uid-22124213-id-403007.html
将上面代码改为以下:
InitStack MOV R0, LR;Build the SVC stack;设置管理模式堆栈 MSR CPSR_c, #0xd3 LDR SP, StackSvc;Build the IRQ stack;设置中断模式堆栈 MSR CPSR_c, #0xd2 LDR SP, StackIrq;Build the FIQ stack;设置快速中断模式堆栈 MSR CPSR_c, #0xd1 LDR SP, StackFiq;Build the DATAABORT stack;设置中止模式堆栈 MSR CPSR_c, #0xd7 LDR SP, StackAbt;Build the UDF stack;设置未定义模式堆栈 MSR CPSR_c, #0xdb LDR SP, StackUnd;Build the SYS stack;设置系统模式堆栈 MSR CPSR_c, #0x5f LDR SP, =StackUsr MOV PC, R0
实际就是降0xdf换为0x5f即可。
改完后,下载,调试,顺利进入中断....
- 利用ADS1.2和JLINK V8搭建ARM7开发平台
- [2]TQ2440、ADS1.2、JLINK建立集成开发环境
- 在ADS1.2下使用JLink V8调试时,突然不能使用,绿灯不亮,多方验证,现已恢复。
- ADS1.2+TX2440+Jlink测试(亲测)
- FL2440+ADS1.2+Jlink裸机移植bootloader
- ads1.2下ucos移植平台的搭建
- JLINK和ADS1.2配合调试下载程序,及JTAG不能识别CPU核解决办法
- FL2440 开发板+jlink V8使用指南
- BREW开发平台的构建(使用VS2003+ADS1.2)
- 利用PS3和Linux搭建一个并行程序开发平台
- RVDS2.2 + jlink v8调试 mini6410
- 使用Jlink仿真及ADS1.2调试(ok2440)
- 如何使用JLINK在ADS1.2环境下调试硬件?
- ADS1.2及Jlink安装步骤及参数设定
- 使用Jlink仿真及ADS1.2调试(ok2440)
- 采用JLink+ADS1.2调试uboot的方法
- 用JLink(V8) + AXD烧写FL2440的BootLoader并利用USB线下载WinCE和Linux
- s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)
- *Nutch 1.3 学习笔记3-1 Inject CrawlDB Reader
- epoll事件处理机制详解
- Parcel
- Drools 规则文件 ——语法属性
- ArcEngine报0x80040228的错误
- 利用ADS1.2和JLINK V8搭建ARM7开发平台
- 代做单片机毕业设计 proteus仿真 课程设计
- usaco 1.3 Calf Flac(暴搜)
- C指针原理(88)-LINUX应用(1)
- 网曝老师体罚学生后微博喊爽 学校:无体罚
- HTML5 Form Elements
- 你想让电脑随机输出英语字母表的任意数吗?
- vm virtualbox 按照centos无法上网问题解决
- 坐标转换