嵌入式linux文档
1AXD调试文档
整个步骤:
1 ASD设置
建立工程
点击edit→setting
{
Target postlinker 选择 ARM FORM ELF
汇编 C 改为 ARM920T
0x30000000
}
project→make
2 AXD
由上述ASD调试好的工程 点击绿色的那个图标(之前一定要确保开发板是开着电的)
(第一次可能打不开,设置 opinion→target)
再点击ASD绿色的那个图标
这次应该就自动弹出一个AXD了 而且有汇编语言在那了
打开opinion →config interface→session files→Run Configuration Script
点击Browse 载入之前设置好的文件(TXT格式即可)
文件内容如下:
setmem 0x53000000, 0x00000000, 32
setmem 0x4a000008, 0xffffffff, 32
setmem 0x4a00001c, 0x00007fff, 32
setmem 0x48000000, 0x2212d110, 32
setmem 0x48000004, 0x00000f40, 32
setmem 0x48000008, 0x00002e50, 32
setmem 0x4800000c, 0x00002e50, 32
setmem 0x48000010, 0x00002e50, 32
setmem 0x48000014, 0x00002e50, 32
setmem 0x48000018, 0x00002e50, 32
setmem 0x4800001c, 0x00018005, 32
setmem 0x48000020, 0x00018005, 32
setmem 0x48000024, 0x00960542, 32
setmem 0x48000028, 0x00000032, 32
setmem 0x4800002c, 0x00000030, 32
setmem 0x48000030, 0x00000030, 32
设置好之后,点击Options→Config taget 双击之前设置好的Jlink.dll文件(没设置就找到这个的目录载入进去)双击过后弹出一个框,点击CPU 在Reset strategy那选择NO reset 。确定 OK 然后它自动重新载入。此时就OK 了 !注意 即使你已经设置好了NO reset 还是要进行上面那步,主要是确认刚才载入的脚本会执行!
2 桥式连接网络设置 (要做为服务器给嵌入式开发板用,必须使用桥式网络)
桥式网络 即是指虚拟机和物理主机公用一块网卡,把网卡当成一个hub,就相当于一个局域网的两台机子)
第一步:
在一个已经建立好后的虚拟机上点击Edit 点击Network Editor 选择当前的 虚拟系统 点击 Bridged 选择OK !
第二步:在命令行下 输入 (在root下,不然会出现权限问题)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
把BOOTPROTO=dhcp 设置成 static
再添加两行
IPADDR=xxx.xxx.xxx.xxx 这个要跟当前物理主机的IP 一个网段 毕竟是在一个“局域网“嘛
NEMASK=xxx.xxx.xxx.xxx 子网掩码
保存!
service network restart
搞定 试ping下 两边都可以ping通 !前提是一定要把防火墙给关闭了 包括物理主机的!
3
出现Oops 原因 调试
首先查看 这个信息
Unable to handle kernel NULL pointer dereference at virtual address 00000000
没有办法访问空指针
然后 看
[<c0133410>] (__bug+0x1c/0x28) from [<c019e41c>] (cache_alloc_refill+0x110/0x500)
[<c019e41c>] (cache_alloc_refill+0x110/0x500) from [<c019e92c>] (kmem_cache_alloc+0x54/0x90)
[<c019e92c>] (kmem_cache_alloc+0x54/0x90) from [<c024884c>] (jffs2_sum_add_kvec+0xa8/0x2b0)
[<c024884c>] (jffs2_sum_add_kvec+0xa8/0x2b0) from [<c024738c>] (jffs2_flash_writev+0x328/0x404)
得知由于第一行[<c0133410>] …………造成4个错误 因为后面3行都是调用了第一行__bug这个函数
然后再看 程序计数器 PC指针 指向 了 __bug这个函数开头起的 0x1c至0x28 之间出现的错误
PC is at __bug+0x1c/0x28
接着 利用 反汇编
arm—linux-objdump -D -S 文件 查看
浙公网安备 33010602011771号