ARM裸板调试技术

ARM 仿真器种类与概念(JTAG、SWD、JLink、ULink、ST-Link) JTAG、SWD是仿真器协议接口。 JLink、ULink、ST-Link是各家公司仿真器的名字。 JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。JTAG调试接口必须使用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号,可选TRST、RESET复位信号和RTCK(同... 阅读详情

我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一块ARM板,基于S3C6410的,但是我们把原来的M-DDR DRAM和Nandflash全部都换掉了,硬件做了不小的改动。以前也做过类似的裸板调试,从ARM7到ARM9,再到现在的ARM11。今天就来写一篇ARM裸板调试的文章。

 

如我前面所说,刚拿到ARM裸板的时候,首先就是要上电。不过上电之前,最好测一下电源和地是否短路。然后就可以上电了,我一般采用稳压电源,这样可以看到电流的大小,如果电流太大,说明硬件可能有问题,用手摸摸板子上的芯片,看看是否烫手,查一下各个电源模块的供电电压是否正常。如果ARM板正常,就可以开始了。下面根据我个人经验,介绍调试步骤和可能遇到的问题:

 

1. 连接仿真器,读写寄存器

将硬件仿真器插到ARM板的JTAG口上,然后连接PC,现在的ARM仿真器好像都是通过USB和PC相连了。连接好后,就给板子上电,然后打开PC端的调试软件,我在这里用的是ARM11的仿真器,调试软件用AXD。如果AXD识别出ARM处理器表示连接成功,如果没识别出来就是有问题了。

(1) 确认ARM处理器的所有供电是否正确

(2) 确认ARM处理器的RESET管脚

(3) 确认ARM处理器的晶振是否震动

(4) 确认JTAG接口是否正确

如果上面这4条都正常,仿真器就应该可以找到ARM。

 

2. 通过脚本初始化ARM处理器及DRAM

由于是裸板,所以ARM上电以后没有做过任何的初始化。一般会通过执行一个脚本来对ARM做一个基本的初始化。脚本一般就是一个txt文件,例如:

setmem 0x36001004 0x4      32

setmem 0x36001010 0x40d  32

setmem 0x36001014 0x6      32

setmem 0x36001018 0x3      32

setmem 0x3600101c 0xf       32

setmem 0x36001020 0xf       32

setmem 0x36001024 0xf       32

mem 0x36001000 +1            32

mem 0x36001004 +1            32

mem 0x36001008 +1            32

mem 0x3600100c +1            32

….

上面的脚本命令是用于AXD软件的,其中“setmem”命令表示设置某个值到某个地址上,而“mem”命令表示从某个地址读一个值并打印出来。通过这两条命令,可以设置ARM内部的寄存器,也可以读出寄存器的值。脚本的作用主要是对ARM做初始化,一般包括关闭Interrupt和watchdog,配置clock,配置GPIO,配置DRAM控制器。

如何在AXD中运行脚本呢?首先在AXD菜单中选择”System Views”,然后选择”Command Line Interface”,会弹出一个窗口,在窗口中输入如下命令:

ob c:/init.txt

 

该命令的意思是运行C盘根目录下的init.txt中的脚本命令。如图:

 

脚本运行完成以后,板子上的ARM和DRAM就应该已经被初始化好了。这时候可以做读写Memory的测试,在菜单中选择”Process Views”,然后选择”Memory”,输入DRAM的地址,然后修改一些地址上面的值,被改变后的值会变成红色,如果可以修改,表示DRAM应该工作正常了,这里给一张截图:

 

 

3. 通过AXD下载程序到DRAM中运行


接下来就是下载程序到DRAM中运行了,主要目的是通过该程序来烧录bootloader。现在的ARM处理器都很强大,支持多种启动模式。根据不同的启动模式,要将bootloader烧到不同的介质当中。在AXD菜单中选择”File”,然后选择”Load Memory from File…”,会弹出一个窗口,如下:


 

如图要在”Address”输入下载的地址,这个地址就是Loader_RAM.bin的运行地址。下载成功以后,打开串口,然后在AXD的”Command Line Interface”中输入命令”setpc 0x50000000”,将PC指针指到0x50000000地址上,然后输入命令”go”开始运行。

 

4. 烧录bootloader,启动ARM板

被下载的程序运行以后,就可以通过该程序将bootloader烧录到Nandflash,NORflash或者SD卡中,具体取决于板子所支持的启动模式。这个程序可以通过串口下载bootloader。还有一种方法就是在AXD中暂停程序运行,然后通过仿真器下载bootloader到DRAM中,然后再在AXD中恢复程序运行,通过最开始下载的程序将下载的bootloader烧到flash或者SD卡当中。

烧录成功以后,关电,拔掉仿真器的JTAG,重新上电,这个时候ARM板中的bootloader就可以运行了。

 

bootloader运行后,工作就容易了。现在的bootloader都很强大,Linux有uboot,WinCE有Eboot,都能支持烧录,下载等功能。一般如果是买的开发板,都会提供烧录工具。不过在更换了DRAM和Nandflash以后,烧录工具可能也需要重新调试了。而且使用的bootloader也需要做改动。

 

ARM裸板开发——UART通信方式及使用 文章目录UART相关描述及概念计算机中常见的几种硬件通信方式UART串口的定义 UART相关描述及概念 计算机中常见的几种硬件通信方式 计算机中CPU和外设进行硬件通信的方式有以下几种: GPIO通信方式,如:LED等、蜂鸣器等。 UART串口通信方式,如:GPS、GPRS等等。 I2C总线通信方式,如:重力传感器、加速度传感器、触摸屏等。 SPI总线通信方式,如:norflash闪存、触摸屏... 阅读详情

相关推荐

qt远程调试ARM板

前期准备 使用qt5.8调试 pc机必须能与arm板ssh通信。 先查看pc版本的gdb以及gdb使用到python(注意:qt3.1之后调试需要python) 查看gdb版本:可通过qtcreator查看(tool->options->build&run->debuggers),如下图红色矩形区域 查看gdb使用的python版本,由上图找到gdb文件目录,打开它。使用ldd命令查看

z526882183的专栏 7105

浅谈ARM裸板调试

我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。最近调试了一块ARM板,基于S3C6410的,但是我们把原来的M-DDR DRAM和Nandflash全部都换掉了,硬件做了不小的改动。以前也做过类似的裸板调试,从ARM7到ARM9,再到现在的ARM11。今天就来写一篇ARM裸板调试的文章。如我前面所说,刚拿到ARM裸板的时候,首先就是要上电。不

yyt7529的专栏 829

ARM9 Mini2440核心板原理图和PCB已经封装库(完整版)

这两年来无数次修改的pcb工程,软件:altium designer,s3c2440核心板制作。ARM9 Mini2440核心板原理图和PCB已经封装库(完整版)

硬件电路设计布线

设计好电路图后,就可以设计PCB板了。在进行PCB设计时,首先要考虑PCB尺寸大小。PCB尺寸过大时,印制线条长,阻抗增加,抗噪声能力下降,成本也增加;尺寸过小,则散热不好,且邻近线条易受干扰。在确定PCB尺寸后,再确定特殊元件的位置,然后根据电路的功能单元,对电路的全部元器件进行布局。 在系统中,ARM片内工作频率为166MHz,其以太网接口电路的工作速率也高达100Mbps以上,因此,在PCB...

Kevin的博客 1189

ARM6410最小系统原理图+pcb

智能家居部分代码,这个项目涉及到的知识点比较多,我做了一年才搞定了它,主要的知识点如下:Android应用开发,网络编程(tcp/ip协议)、Mysql数据库编程、阿里云c语言服务器环境的搭建、ARM嵌入式底层驱动开发、linux操作系统的移植、ARM+Linux下wifi驱动编译移植(或者有线网络也可以)、433模块驱动编译移植、红外模块驱动编译移植、红外遥控解码学习、1838红外接收头解码、1602液晶屏显示、433射频通信、语音模块、Linux系统QT界面开发、PCB板硬件设计以及51单片机编程知识。

ARM 4层开发板 altiumdesigner电路板

iTOPiMX6硬件资料 , ARM 4层主板,4G模块,GPS模块,WIFI模块等各个模块!

ARM ADS中的AXD 调试经验集锦

ARM ADS中的AXD 调试经验集锦2007-03-29 15:22 搞了一中午axd,好多设置不太熟悉,网上找了一些资料,8错. 1、如何设置AXD连接的Target。 在菜单的Configure Target…选项中可以

qxwandy的专栏 939

经典ARM工控板PCB范例

经典ARM工控板PCB范例,使用AD打开

ARM v9仿真器在GD32上的烧录连线和keil配置

2 系统板的usb口用usb线和pc连接,仅提供电源。如果找不到sw设备,可用万用表量下u3和gnd直接的电压是否小于2.6v,小于则不正常。3 keil上选择jlink, sw口,如果sw(红圈的设备),说明ok了。记录本人的操作,以备后续查看。

MyCollege1999的博客 4474

手把手教你用Python实现双三次插值(附OpenCV对比测试)

本文深入解析了双三次插值算法的数学原理,并提供了从零开始的Python实现教程。通过与OpenCV官方实现的对比测试,详细评估了不同插值算法(包括最邻近差值、双线性插值)在图像质量与计算性能上的差异,帮助开发者掌握高质量图像缩放的核心技术。

weixin_29310605的博客 296

告别单一查询!MultiQueryRetriever在LangChain中的高级用法解析

本文深入解析了LangChain中的MultiQueryRetriever高级用法,该工具通过大语言模型自动生成多样化查询,显著提升文档检索的召回率和准确性。文章详细介绍了其核心机制、高级配置调优策略以及在多语言和专业领域中的实际应用,为开发者提供了优化知识库问答系统的实用方案。

weixin_28730927的博客 271

WDS2期第29课 1 2 3 裸板调试方法 点灯 串口 JTAG 重定位前的代码不能用源码级别的调试只能用汇编级别的调试,逐条指令调试。

裸板调试方 需要结合汇编源码 点灯 串口打印 JTAG JTAG(Joint Test Action Group,联合测试工作组),主要用于芯片内部测试。 标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 JTAG位于CPU内部,当cpu与外设的地址信号,数据信号都要经过JTAG。 电脑上的应用程序有 keil、ADS、openOCD JTAG调试器有Jlink、并口wigger、openJTAG。 可以控制cpu, 如,当地址信号 == xxx 时,让

巴德鸟 262

MFC工具栏增加EditBox和Button

1. 在资源视图中增加EditBox, Button控件,ID分别为ID_EDIT_SEED, ID_BTN_SEED 2. 在CMainFrame中增加成员变量 CMFCToolBarEditBoxButton *m_editSeed; CMFCToolBarButton *m_btnSeed; 3. 在CMainFrame::OnCreate中创建控件 m_editSeed = new CMFCToolBarEditBoxButton(ID_EDIT_SEED, GetCmdMgr()-&.

学习是为了探索这个世界的本质 802

关于在arm裸板编程时使用printf问题的解决方法

在ARM裸板驱动编程中,是不允许程序直接调用C库程序的。为什么呢?因为此时kernel还没有被加载,所以在封装在kernel层的C库的API是用不了的,那怎么办?    在开发过程中,printf的功能我不用再详细多说,就是用来debug调试程序的,有了printf,写代码出错的时候能够快速定位错误。    那么如何在裸板中调用呢?    1、首先,我们在u-boot源代码中找到System.ma

Bruce.yang的嵌入式之旅 2769

图解链表 —— JAVA中的单链表基本操作

文章目录1. 什么是链表2. 链表的种类3. 创建单链表3.1 创建 Node 类(车厢类)3.2 创建 MySingleList (火车类)4. 单链表的基本操作4.1 增加链表元素4.1.1 在链表头部添加元素4.1.2 在链表任意位置添加元素4.1.3 在链表尾部添加元素4.2 删除链表元素4.2.1 删除第一个节点元素4.2.2 删除任意位置 index 元素4.2.3 删除链表中指定元素的第一个节点4.2.4 删除链表的所有指定元素4.3 查找链表元素4.3.1 判断链表中是否包含元素 data4

AlinaQ05的博客 2502

【Dify精讲】第2章:后端服务架构深度剖析

Dify后端采用Flask应用工厂模式实现模块化开发,通过蓝图架构将API分为控制台、Web应用和服务接口三大模块。其设计亮点包括:1) 应用工厂模式支持多环境配置和独立测试;2) 蓝图分层管理实现API模块化,各模块职责清晰;3) 严格遵循RESTful原则设计API接口;4) 使用Flask-RESTful扩展简化API开发。这种架构既保持了Flask的灵活性,又实现了企业级应用的可维护性,是Flask项目架构的优秀实践案例。

wiyi9891的专栏 2126

浅谈AXD+ARM裸板调试

作者:ARM-WinCE  原文转自:http://blog.youkuaiyun.com/nanjianhui/article/details/4189270 我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一块ARM板,基于S3C6410的,但是我们把原来的M-DDR DRAM和Nandflash全部都

l502091250的专栏 1452

【Bug已解决】Codex App returns 401 Missing bearer/basic authentication after login on multiple Windows la

原始报错:Codex App returns 401 Missing bearer/basic authentication after login on multiple Windows laptops场景:用户在 Windows 笔记本上登录应用成功了,但随后每个业务请求都返回 401,提示"Missing bearer/basic authentication"。登录态像是"假的"——明明登了,请求却没带任何认证信息。多台 Windows 设备都能复现。

一键难忘的博客 595

浅谈AM5728裸板调试

一、浅谈ARM裸板调试 1.连接仿真器,读写寄存器 将硬件仿真器插到ARM板的JTAG口上,然后连接PC,现在的ARM仿真器好像都是通过USB和PC相连了。连接好后,就给板子上电,然后打开PC端的调试软件,我在这里用的是ARM11的仿真器,调试软件用AXD。如果AXD识别出ARM处理器表示连接成功,如果没识别出来就是有问题了。 (1)确认ARM处理器的所有供电是否正确 (2)确认ARM处理...

YEYUANGEN的专栏 1901

acados安装与调试指南:版本兼容性问题

在计算机编程领域,软件工具和库的安装与调试是每个开发者必经的挑战。最近,在安装和使用acados库时,我遇到了一个有趣的问题,这里我将详细分享我的经验和解决方案。

m0_62153576的博客 740

C#与天文观测:Celestia模拟星空的奇幻之旅

Celestia就像一艘穿梭在星海中的小飞船,带领我们遨游宇宙。C#则是这艘飞船的智能导航系统,用代码指挥它飞向任何我们向往的星球或星系。首先,下载并安装Celestia,熟悉其基本操作和功能。创建一个星空目标列表,包括不同的恒星、行星和星系。// 示例:定义观察目标列表new SpaceObject("太阳"),new SpaceObject("月球"),new SpaceObject("火星")

java专栏 1457

arm linux裸板调试,涨姿势!高手分享ARM裸板调试经验步骤

原标题:涨姿势!高手分享ARM裸板调试经验步骤刚拿到ARM裸板的时候,首先就是要上电。不过上电之前,最好测一下电源和地是否短路。然后就可以上电了,一般采用稳压电源,这样可以看到电流的大小,如果电流太大,说明硬件可能有问题,用手摸摸板子上的芯片,看看是否烫手,查一下各个电源模块的供电电压是否正常。如果ARM板正常,就可以开始了。下面根据个人经验,介绍调试步骤和可能遇到的问题:1.连接仿真器,读写寄存...

weixin_39816141的博客 494

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32CubeMX+HAL库驱动SHT40:硬件I2C完整实现与踩坑指南

I2C总线是嵌入式系统中连接传感器最常见的外设接口之一,其时序由硬件外设管理时,可显著降低CPU占用,并提高通信可靠性。合理配置上拉电阻与时钟频率,理解从机地址、寄存器读写及CRC校验机制,是稳定驱动数字传感器的关键。在实际工程中,基于HAL库与CubeMX的硬件I2C开发,既能规避软件模拟时序的抖动问题,又能借助标准外设库快速落地。面对温湿度监测这类需要长期稳定运行的低功耗场景,选用高精度数字传感器并配以完善的驱动代码尤为重要。本文以STM32F103驱动SHT40为例,完整介绍了CubeMX配置、HAL

weixin_33985507的博客 363

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: ADS问题汇总
下一篇: 对.lds连接脚本文件的分析
willand1981
博客等级 码龄18年 136粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值