打印
[MCU]

大家使用什么仿真器和编译器来开发LM3S2793?

[复制链接]
345|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2020-12-3 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在用的仿真器是JLINK V8(山寨),编译器KEIL4.12,KEIL4.22,KEIL4.54,IAR6.3.0.1,IAR6.4(都试过),老是出现各种各样的问题,最主要的问题是烧写能烧进去,就是不能正常仿真。PS:需要使用片内FLASH进行编程。

    用KEIL的话,都是按JLINK V8用户指南配置的仿真器,编译器配置的也没问题(与用户手册一致),但是点击Download and Debug后,程序有时候能跑到main处,有时候就停在启动文件里调用main的地方(B   __main)不动了。用例程也是一样的效果,试过就编写几句话的main函数,也不行,所以应该不是程序的问题。PS:启动文件就改了中断向量表。别的没动。编译都没问题的,但一旦下载调试就会出现这个问题。后来转向IAR.....

    用IAR的话,配置好JLINK V8和编译器,编译也没问题,但烧写进去后,程序会跑飞...而且明明已经使能了PA口,从寄存器查看仍是锁定的,郁闷....在使用IAR的时候,下载的时候有一个警告:target inconsistency detected in memory range 0x0000 0000-0x0000 0C8B.从网上查了一下,应该是仿真器用的地址和程序下载的地址有冲突,可是重新配置了连接器配置文件后(直接从0x0000 1000开始,绕过出问题的这段初始地址,警告变成了两个,一个是 target inconsistency detected in memory range 0x0000 1000-0x0000 1C8B,另一个就是好像堆栈地址不对,应该是溢出了)。不管这个警告框,点确定后进入调试状态,前面初始化的几句能走,但是时钟初始化和端口初始化不正常,特别是端口初始化:SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);这句根本就没执行(PS:最开始调试的时候,出现过一个警告说没发现C:\cygwin\sandbox\DriverLib\build\DriverLib.test\driverlib\sysctl.c,先是重新指定了一个电脑里有此文件的地址,让它使用这个地址的文件,发现还会弹出,没有办法就在c盘下自己建了一个这样的文件夹,把文件加进去之后,没出现警告了,但是还是觉得就是因为这个 sysctl.c的问题造成时钟初始化和端口初始化异常。但是自我觉得根本问题不是这个 sysctl.c的问题,因为本来觉得这个路径就很诡异,会不会就是仿真器的临时调试用的?(不清楚...)

    鉴于出现以上情况,基本断定应该不是烧写口的问题(用J-FLASH也烧过);外面的硬件部分片子本身应该也不会出现问题(中间锁住过一次,解锁了),测试供给的外部时钟还比较稳定,供给的3.3V电源纹波也比较小,很稳定;换过较多编译器,**,时间限制的版本都试过,应该也不是编译器的问题;初端和终端基本都没问题,问题应该出在中间仿真器的问题上(下载连接的时候),用的JLINKV8仿真器(山寨版),RDI驱动从4.22g,4.34,4.4,4.52都用过。发现在4.22g的CPU选项里没有要用的LM3S2793,选择了LM3S2739,发现它的ROM和RAM的初始地址及尺寸都与 LM3S2793的一致,操作中间仿真器固件自动更新过一次,发现不行,又把原固件又烧回来了,还是出错,别的设置都与JLINKV8的使用手册一致。因此,我自己的观点是,仿真器内部程序临时使用LM3S2793内部存储器的地址与片子本身启动配置和应用的地址有冲突,造成片子内部系统控制异常,程序没法正常运行与仿真,因此会出现即使是官方给出的例程也异常的情况。
      以上只是我的分析,还劳烦大家能给出建设性意见和建议,因此也想问问大家使用什么仿真器和编译器来开发LM3S2793?万分感谢!

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2034

主题

7330

帖子

10

粉丝