在AXD下用MULTI

编程入门 行业动态 更新时间:2024-10-09 00:47:09

在<a href=https://www.elefans.com/category/jswz/34/1633215.html style=AXD下用MULTI"/>

在AXD下用MULTI

 

artical from:  .html

 

在AXD下用MULTI-ICE调试storlink,出现cause:Undefined instruction,一按GO就出现Processor FA5 raise an exception .cause:Undefined instruction  目前的解决办法是 1,每次DEBUG前要是给板子复位就可以调试,进入到C要是不DEBUG前不复位,就会进入反汇编里面 2,每次DEBUG前要初始化SDRAM,具体初始化方法如下: 要把映像文件加载到SDRAM中,除了要正确设置好映像文件的RO段基地址外(对于一个加载时域和运行时域相同的映像文件来说,RO段基地址实际上就是该映像文件在存储空间的起始地址),更关键的是要对SDRAM进行初始化。因为在上电时,SDRAM是没有被初始化的,所谓初始化SDRAM,就是要设置处理器的SDRAM空间以及读写SDRAM的时序参数,因而SDRAM在初始化之前是不能进行读写操作的。 启动AXD时自动初始化SDRAM:将初始化SDRAM的命令序列保存为一个name.txt文本文件(代码如下),然后在AXD的主窗口下选择菜单Options->Configure Interface...,在Session File一页中选择“Run Configuration Script”,将该name.txt文本文件作为一个脚本加进来,确定。这样以后每次启动AXD时,就会自动运行该脚本来完成对SDRAM的初始化。 在设置ADS的编译环境的时候要设置RO Base 如果这一项填0x00000000,表示把裸机程序烧写到Nand Flash 的0地址处,这样会把原先的系统给擦除掉。 如果这一项填0x30000000的话,对应的ouput选项中Image entry point 也要是0x300000000,表示把裸机程序烧写到SDRAM中运行,掉电后就没有了,而此时原先的系统还在(友善之臂的手册4.1章节教的方法就是烧写到SDRAM中运行的)。
烧写到Nand Flash的0x00000000是不会有错误提示的。而烧写到SDRAM就出现以下提示,或者即使没出现也不能在AXD调试窗口进行下载,运行(包括单步运行)。 我总共遇到的提示:
1、software interrupt (SWI) 0xffffff occured in ARM mode @ address 0x2FAE0000
2、processor ARM79_0 raised an exception
   Cause:Undefined instruction
3、无法添加C:\Documents and Settings\第四空间\default-1-2-0-0.ses

1、
在ADS执行make后,点击debug按钮,
提示:不能添加C:\Documents and Settings\第四空间\default-1-2-0-0.ses
原因:是有中文名。我原来的账户名是第四空间。后来改了可这个文件还是存在。
所以,我把default-1-2-0-0.ses文件放到Documents and Settings目录下了。后来,关掉当前AXD,重新点击ADS下debug按钮的时候弹出个对话框,选择好这个文件即可。(这个是针对我而言的,如果您的计算机帐户不是中文应该不会出现这个问题)
2、
在AXD点击运行后,
提示: software interrupt (SWI) 0xffffff occured in ARM mode @ address 0x2FAE0000  (这个解决的办法主要参考网上的方案)
原因:是没有初始化SDRAM

方法:
ADS 项目属性设置:
-ro-base = 0x30000000
entry 0x30000000
Init Section: 2440init.o Init
AXD下需要加载一个SDRAM初始化文件。(在1提示解决的前提下)

AXD下-->Option->Config Interface->session file->run configuration script.

编辑一个初始化文件保存为.txt文件(名字不取中文即可,我也没试过取中文得不得),
写好后存放到Jlink-V8的安装目录JLinkARM_V408k下(路径中最好也不要有中文),文本内容如下:

Setmem 0x53000000 0x00000000 32
Setmem 0x4A000008 0xFFFFFFFF 32
Setmem 0x4A00001C 0x000007FF 32
Setmem 0x53000000 0x00000000 32
Setmem 0x56000050 0x000055AA 32
Setmem 0x4C000014 0x00000007 32
Setmem 0x4C000000 0x00FFFFFF 32
Setmem 0x4C000004 0x00061012 32
Setmem 0x4C000008 0x00040042 32
Setmem 0x48000000 0x22111120 32
Setmem 0x48000004 0x00002F50 32
Setmem 0x48000008 0x00000700 32
Setmem 0x4800000C 0x00000700 32
Setmem 0x48000010 0x00000700 32
Setmem 0x48000014 0x00000700 32
Setmem 0x48000018 0x0007FFFC 32
Setmem 0x4800001C 0x00018005 32
Setmem 0x48000020 0x00018005 32
Setmem 0x48000024 0x008E0459 32
Setmem 0x48000028 0x00000032 32
Setmem 0x4800002C 0x00000030 32
Setmem 0x48000030 0x00000030 32


编写存放好该文本后按上述方法添加即可。到此我困惑的问题也得到了解决。
在此要感谢给我帮助的朋友和帖子。希望我的这个总结能帮到你的忙。

要注意的是如果这次配置好了,有一次使用的文件的路径中有中文,那么下一次就得冲洗加载这些文件。
所以工程不要放在有中文的目录下。

 

更多推荐

在AXD下用MULTI

本文发布于:2024-03-23 17:27:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1740859.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:AXD   MULTI

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!