导航:首页 > 知识科普 > arm有哪些调试方法

arm有哪些调试方法

发布时间:2022-10-23 06:52:23

如何在安卓系统上使用arm-linux-gdb调试内核

1,先下载最新版本的gdb源代码包,我使用的是gdb-7.6.tar.gz,使用tar命令进行解包(tar -xvzf gdb-7.6.tar.gz),cd进gdb-7.6/gdb目录,使用vi找到remote.c中的如下代码:
if(buf_len > 2 * rsa->sizeof_g_packet)
error(_("Remote 'g' packet reply is too long: %s"),rs->buf);
将上面两行注释掉,添加如下代码
if(buf_len > 2 * rsa->sizeof_g_packet)
{
rsa->sizeof_g_packet = buf_len;
for(i = 0; i < gdbarch_num_regs(gdbarch); i++)
{
if(rsa->regs[i].pnum == -1)
continue;
if(rsa->regs[i].offset >= rsa->sizeof_g_packet)
rsa->regs[i].in_g_packet = 0;
else
rsa->regs[i].in_g_packet = 1;
}
}
使用如下命令对代码进行配置、编译和安装
./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
make
make install
2,gdbserver使用android4.2模拟器中自带的版本(v7.1)
3,将NDK编译好的C/C++可执行程序,上传到模拟器中/data/test目录下,假设可执行程序的名称为testHello。
4,使用命令:gdbserver :7000 /data/test/testHello 启动模拟器端的调试。
5,启动arm-linux-gdb之前,使用vi打开~/.bash_profile文件,在其中添加:
export PATH=$PATH:/usr/local/arm-gdb/bin,以便在程序的其他目录可以直接启动arm-linux-gdb程序
6,cd至ndk编译好的testHello文件所在目录
7,使用如下命令进行端口映射:adb forward tcp:7000 tcp:7000,将模拟器的7000端口和本机的7000端口进行映射
8,使用命令:arm-linux-gdb testHello启动gdb调试
9,使用target remote :7000 链接模拟器中gdbserver启动的服务。
10,自此,我们就可以使用gdb命令进行代码调试了。

⑵ 嵌入式系统常用调试方法有几种,各有什么优缺点

硬件系统的调试:嵌入式系统的调试包括硬件调试1)排除逻辑故障 2)排除元器件失效 3)排除电源故障
3)实时在线仿真调试 实时在线仿真(In—Circuit Emulator。ICE)是目前最有效的调
试嵌入式系统的手段。
1)软件调试 主机和目标板通过某种接口(一般是串口)连接,主机上提供调试界面,把调试软件下载到目标板上运行。

2)模拟调试 所要调试的程序与调试开发工具(一般为集成开发环境)都在主机上
运行,由主机提供一个模拟的目标运行环境,可以进行语法和逻辑上的调试与开发。
4)JTAG 调试 基于JTAG(Joint test action group)的调试方法是ARM 系统调试的最常用
方法,因为ARM 处理器中集成了JTAG 调试模块。

⑶ 马上就是ARM11的时代了,怎么调试ARM11

RealView? Development Suite(RVDS)是ARM公司继SDT与ADS1.2之后主推的新一代开发工具。RVDS集成的RVCT是业内公认的能够支持所有ARM处理器,并提供最好的执行性能的编译器;RVD是ARM系统调试方案的核心部分,支持含嵌入式操作系统的单核和多核处理器软件开发,可以同时提供相关联的系统级模型构建功能和应用级软件开发功能,为不同用户提供最为合适的调试功效。
目前全球基于ARM处理器的40亿个产品设备中,大部分的软件开发是基于RealView开发工具。安全、可靠和高性能地设计产品的最好选择就是购买ARM RealView开发工具。
RVDS向下兼容以前的版本(ADS v1.2.1、1.1、1.0.1)。

RealView? Development Suite的突出特性

? 支持ARM新架构下的编译和调试,包括支持V7指令集和NEON技术,支持Cortex A8 和M3;

? Instruction Set System Models取代了旧的RV-ISS/ARMulator;

? RVD可以直接连接到SoC Designer;

? 支持CoreSight调试技术;

? 可以用RVCT编译Linux 应用程序和共享库;

? 支持Trustzone 技术,Secure和Non-Secure域下的代码编译和调试;

? Eclipse / Codewarrior集成开发环境;

? 支持MPCore;

? 支持Multi-Core调试:包括支持ZSP 400,500;支持Teak,TeakLite和OAK Ceva DSP;并且可以根据客户要求增加对特定的DSP的支持;

? 先进的目标连接系统:可以直接连接到Model,Scanchain或DAP;RVI支持GDB (GNU Debugger);更快的下载速度1.3MB/Sec;

? 丰富的项目管理系统:基于Eclipse的项目管理器,能支持Linux,Windows 平台。

⑷ linux下面调试ARM板上的应用程序的方法有哪些

GDB,,,,,,,,,,,,,,,,,,

⑸ ARM调试和Flash调试的区别

首先说说什么是Flash调试和RAM调试,Flash调试就是通常意义下的普通调试,即将编译链接之后的code下载到单片机的ROM区,数据放到RAM区,然后进行调试;而RAM调试则是将数据放到RAM区的同时再从RAM区中额外开辟出一段空间存放可执行code,这样就是code和数据同时运行在RAM区里面。
至于为什么要刻意区分出这两种调试方式,其实在低端MCU领域是没有RAM调试这个概念的,其中很大一部分原因是它没有足够大的RAM空间在存放编译后code代码的同时仍然可以拿出额外的空间作为数据RAM的,而在高端MCU领域中,比如ARM,动辄几十KB的RAM是很常见的,在不运行超大工程的情况下是完全可以拿出一部分空间运行代码的,所以也就出现了RAM调试这种方法了。
相比于Flash调试,RAM调试则与生俱来的带来两个最大的先天优势,一个是RAM的可擦写的次数理论上是无限的,在调试代码的期间我们往往是需要不断下载更新的,而Flash的擦写次数是有限的(一般几万次、几十万次不等,虽然看起来足够多,但是也心疼的慌),因此在调试期间我们可以选择RAM调试;另一个方面,则更是RAM调试的强项(Flash真够悲催的),在RAM区的代码执行速率和效率远高于需要不断地读写Flash区代码的,这点毋庸置疑,所以在当今智能手机比拼硬件的时代,我们选择一款强大的CPU是应该的,但是要想让系统运行的更流畅,足够大的机载RAM是必须的,呵呵。当然RAM调试的缺点是掉电丢失,在RAM区运行的代码在掉电的情况下是不会被保存的,下次上电单片机仍然会执行Flash区内部的老的代码,这点是需要注意的,很多人忘记考虑这点,在RAM调试功能完毕,等拿到现场单片机独立运行的时候却发现程序是不对的

⑹ 如何使用arm-eabi-gdb调试android c/c++程序

1.获取gdbserver

prebuilt/android-arm/gdbserver

2.获取arm-eabi-gdb

prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin

3.启动emulator(即qemu虚拟机,调式linux内核时用到)

$adb remount && adb push gdbserver /system/bin

adb shell

#gdbserver 10.0.2.2:1234 /system/bin/ping

$telnet localhost 5554

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

Android Console: type 'help' for a list of commands

OK

]

KO: unknown command, try 'help'

**cmd**redir add tcp:1234:1234

OK

exit

Connection closed by foreign host.

$cdout/target/proct/generic/symbols/system/bin && arm-eabi-gdb ping

(gdb) r

Starting program:

Don't know how to run. Try "help target".

(gdb) target remote localhost:1234

Remote debugging using localhost:1234

0xb0000100 in ?? ()

(gdb) l

1779 usage();

1780 if (argc > 5)

1781 usage();

1782 } else {

1783 if (argc > 10)

1784 usage();

1785 options |= F_SOURCEROUTE;

1786 }

1787 }

1788 while (argc > 0) {

⑺ MDK 可以 调试 arm cortex A系列

可以。
打开软件工程,编译,调试,建议使用BuildTarget编译工程,也可用F7。Translate是编译当前活动文件,RebuildallTargetfiles是重新编译所有目标文件。
软件在线调试和硬件在线调试;由于现在硬件成本比较便宜,一般我们都使用硬件在线调试,也就是软件直接下载到芯片,我们查看运行状态。

⑻ 怎样用笔记本电脑调试ARM开发板

同台式机啊,没有串口的话去买个USB转串口数据线,淘宝上就有,各地电脑城也有,很便宜,几十块钱(我买的双芯片的USB转串口数据线才25元)。
回答补充:
哈哈,你没弄成功的东西别说是骗人啊,USB转串口线调试ARM板子能不能行我不敢说,没有arm的开发板,但是我用这个USB转串口线调试别的版子就可以,并且USB转串口线还可以连接步步高电子辞典之类的串口通信设备(老款4980)。
不过话又说回来,现在市场上的USB转串口线名目繁多,很多都功能不全,要想摹拟的比较好,应该选用双芯片方案的
我是在Vista下使用的,发现一个问题,就是模拟出来的端口名字不固定,一会儿叫com3,重启后又成了com9,你可以强行改名锁住他。另外,很多linux也能识别这个USB转串口线,能不能用就没试过了,俺不会串口编程。
FPGA怎么联就不清楚了,既然有并口,为什么不试试并口?USB转并口我没实验过,无法回答你的问题,不过好像FPGA板子都有电路图,你看看电路图啊,没用过FPGA,不过毕业前看同学玩FPGA,也没见什么复杂的下载设备,都是平常用的

⑼ 如何使用arm-eabi-gdb调试android c/c++程序

用gdb调试动态链接库大家都知道在Linux可以用gdb来调试应用程序,当然前提是用gcc编译程序时要加上-g参数。我这篇文章里将讨论一下用gdb来调试动态链接库的问题。首先,假设我们准备这样的一个动态链接库:引用:库名称是:ggg

阅读全文

与arm有哪些调试方法相关的资料

热点内容
中式棉袄制作方法图片 浏览:63
五菱p1171故障码解决方法 浏览:858
男士修护膏使用方法 浏览:546
电脑图标修改方法 浏览:607
湿气怎么用科学的方法解释 浏览:537
910除以26的简便计算方法 浏览:805
吹东契奇最简单的方法 浏览:704
对肾脏有好处的食用方法 浏览:98
电脑四线程内存设置方法 浏览:512
数字电路通常用哪三种方法分析 浏览:13
实训课程的教学方法是什么 浏览:525
苯甲醇乙醚鉴别方法 浏览:82
苹果手机微信视频声音小解决方法 浏览:700
控制箱的连接方法 浏览:75
用什么简单的方法可以去痘 浏览:789
快速去除甲醛的小方法你知道几个 浏览:803
自行车架尺寸测量方法 浏览:124
石磨子的制作方法视频 浏览:152
行善修心的正确方法 浏览:403
薯仔炖鸡汤的正确方法和步骤 浏览:276