`
javahigh1
  • 浏览: 1301897 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

浅谈ARM裸板调试

阅读更多

作者:ARM-WinCE

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

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

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

将硬件仿真器插到ARM板的JTAG口上,然后连接PC,现在的ARM仿真器好像都是通过USBPC相连了。连接好后,就给板子上电,然后打开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做初始化,一般包括关闭Interruptwatchdog,配置clock,配置GPIO,配置DRAM控制器。

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

ob c:\init.txt

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

脚本运行完成以后,板子上的ARMDRAM就应该已经被初始化好了。这时候可以做读写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烧录到NandflashNORflash或者SD卡中,具体取决于板子所支持的启动模式。这个程序可以通过串口下载bootloader。还有一种方法就是在AXD中暂停程序运行,然后通过仿真器下载bootloaderDRAM中,然后再在AXD中恢复程序运行,通过最开始下载的程序将下载的bootloader烧到flash或者SD卡当中。

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

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

分享到:
评论

相关推荐

    嵌入式ARM裸板调试过程

    ### 嵌入式ARM裸板调试过程详解 #### 一、嵌入式ARM裸板调试概述 嵌入式ARM裸板调试是一项重要的技术活动,它涉及到ARM微处理器板卡在没有任何固件或操作系统的情况下进行首次上电和调试的过程。这种调试通常是在...

    ARM 裸板 触摸屏功能程序

    在"ARM裸板触摸屏功能程序"中,我们主要探讨的是如何在基于ARM的硬件平台上开发和实现触摸屏相关的交互功能。 1. **触摸屏接口**:首先,要理解触摸屏与ARM处理器之间的通信方式,这通常通过I2C、SPI或USB等接口...

    【ZLG微信文档精选】浅谈工程师的调试法宝(三)——SWO引脚的巧妙应用.pdf

    首先,SWO引脚是ITM(Instrumentation Trace Macrocell)模块的一部分,该模块是ARM Cortex-M3和Cortex-M4内核调试组件的一部分。ITM的作用是支持调试信息的输出,例如使用printf函数格式化的文本。ITM具有32个刺激...

    ARM裸板开发--PWM波形控制

    在本教程中,我们将深入探讨“ARM裸板开发--PWM波形控制”这一主题,特别是如何在gec210开发板上实现这一功能。gec210开发板是一款集成屏幕的硬件平台,它提供了丰富的外设接口,便于开发者进行实际的项目实践。 ...

    几个非常经典的2440裸板调试程序源代码

    标题中的“2440裸板调试程序源代码”指的是基于Samsung S3C2440微处理器的嵌入式系统开发过程中所使用的原始代码。S3C2440是一款广泛应用的ARM9架构的处理器,常用于开发嵌入式设备如手持设备、数字媒体播放器、...

    【ZLG微信文档精选】浅谈工程师的调试法宝(1-5).zip

    - SWO是ARM Cortex-M系列处理器提供的一种硬件调试功能,允许内核输出高速调试信息,无需占用串口资源。 - 它可以实时传输程序执行的详细信息,如函数调用、变量值等,对于复杂系统的性能分析特别有用。 - 使用...

    ARM JTAG调试软件中文手册

    ARM JTAG调试软件中文手册是针对ARM架构处理器的调试工具的重要参考资料,主要目的是帮助开发者通过JTAG(Joint Test Action Group)接口进行硬件调试。JTAG是一种国际标准测试协议,广泛应用于集成电路的生产测试和...

    ARM调试接口架构规范ADIv5.0至ADIv5.2_中文版.pdf

    "ARM调试接口架构规范ADIv5.0至ADIv5.2中文版" ARM调试接口架构规范ADIv5.0至ADIv5.2中文版是ARM系列产品MCU的调试接口协议及构架规范的中文版本,主要介绍了ARM内核调试协议、SWD接口、JTAG接口下载协议等内容。 ...

    ARM7、9调试代理

    ARM7和ARM9是两种不同系列的ARM微处理器架构,广泛应用于嵌入式系统设计中。在进行嵌入式开发时,调试代理是至关重要的工具,它为开发者提供了对目标系统的远程调试能力,使得程序员可以在不中断系统运行的情况下...

    ARM调试工具软件之三

    为了有效地开发和调试基于ARM的系统,熟练掌握相关的调试工具至关重要。本篇将深入探讨“ARM调试工具软件之三”,重点关注 ucOS(也称为uC/OS),这是一个实时操作系统(RTOS),对于理解并优化ARM设备的运行至关...

    ARM JTAG 调试原理.pdf

    ### ARM JTAG调试原理详解 #### 一、前言 本文旨在深入探讨ARM JTAG调试的基本原理和技术细节。文中不仅涵盖了TAP (Test Access Port) 和边界扫描架构的基础概念,而且还详细介绍了ARM7TDMI处理器的JTAG调试过程。...

    ARM开发调试教程

    【ARM开发调试教程】 ARM开发调试是嵌入式系统开发中的关键环节,涉及到硬件平台的构建、软件程序的编写和调试等多个方面。本教程由李希岗撰写,旨在分享他在ARM开发过程中的经验和技巧,特别以S3C44B0X开发板为例...

    ARM9 ARM7 Jtag调试代理软件

    本文将深入探讨这两种处理器架构,以及JTAG(Joint Test Action Group)调试技术在ARM开发中的应用。 首先,ARM9属于ARM的9系列,它是一款高性能的RISC(Reduced Instruction Set Computer)处理器,具有较高的处理...

    周立功的《深入浅出ARM7》的书的PDF.zip

    《深入浅出ARM7》是周立功先生撰写的一本关于ARM微处理器体系结构和技术的专著,这本书深入解析了ARM7处理器的工作原理及其在嵌入式系统中的应用。ARM7是ARM公司早期设计的一种高性能、低功耗的32位RISC(精简指令集...

    嵌入式ARM入门调试笔记

    本资源"阿南的ARM入门调试笔记"提供了一个全面的起点,帮助初学者掌握ARM架构的基本概念和调试技巧。 ARM(Advanced RISC Machines)是一种精简指令集计算机(RISC)架构,以其高效能、低功耗的特性闻名。笔记首先...

    ARM JTAG调试原理.rar

    **ARM JTAG调试原理** ARM(Advanced RISC Machines)架构是一种广泛应用在嵌入式系统中的处理器架构,以其高效能、低功耗而受到广泛的青睐。JTAG(Joint Test Action Group)是国际电工委员会(IEC)制定的一种...

    JLINK驱动,arm裸机调试

    在嵌入式开发领域,尤其是针对ARM架构的处理器,JLINK是一个非常重要的工具,它提供了对硬件的调试支持。本文将深入探讨“JLINK驱动”及其在“arm裸机调试”中的应用,以及如何与RealView Development Suite (RVDS)...

    可以用Wiggler调试ARM7-ARM9的软件

    相关软件可以使用Wiggler调试ARM7-ARM9, 支持Win98/Win2000/WinXP, ADS 1.2, ARM7/ARM9, ARM/Thumb, Little/Big Endian, RDI, Banyan,Wiggler...

    浅谈 ARM仿真器中的断点资源.pdf

    ### 浅谈ARM仿真器中的断点资源 #### 概述 随着嵌入式系统的发展,JTAG(联合测试行动组)接口作为一种低成本且灵活的调试工具,正在逐步替代传统的全仿真方式(FullICE),成为嵌入式开发过程中不可或缺的一部分。...

Global site tag (gtag.js) - Google Analytics