完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-6 17:15 编辑
我看了网上写的关于28335和2812 flash搬移到RAM里运行的方法以后,对照ti的说明,在项目中加入对应的文件,进行了试验,现在发现有下面这个问题。 |
|
相关推荐
9个回答
|
|
这两个waring,您可以不理睬。因为可能您在程序中,没有用到这两个section,或者没有定义
_const_loadstart 和 switch_loadstart >> warning: load address of uninitialized section .const ignored >> warning: load address of uninitialized section .switch ignored 具体为什么没有进中断,还是需要您逐步调试,看看是否进入了什么非法中断,程序停在什么位置了。 具体是哪条语句导致进入了非法中断。 还是需要您单步调试。 如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作! |
|
|
|
另外,这个例子是将所有Section都copy到Ram中执行,其实真正的程序没有必要。
只需要对相应的重要的代码,也就是.text段copy到RAM中已经足够,而且可以只copy一段程序,也没有必要将整个text段copy,除非楼主的RAM实在太大了,不用浪费了,可以考虑。 还有,此方法的copy是在程序启动前copy的,并不是用memcopy整个语句执行的,楼主也可以考虑尝试一下此语句,具体例子可以参考FlashInit()函数的copy. 如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作! |
|
|
|
www033 发表于 2018-6-6 08:31 您好,我的程序里面用到了switch语句,而且_const_loadstart 和 switch_loadstart两个都有定义如下: .global _const_loadstart, _const_runstart, _const_size .global _switch_loadstart, _switch_runstart, _switch_size 然后在asm文件里面写了如 copy_sections: MOVL XAR5,#_const_size ; Store Section Size in XAR5 MOVL ACC,@XAR5 ; Move Section Size to ACC MOVL XAR6,#_const_loadstart ; Store Load Starting Address in XAR6 MOVL XAR7,#_const_runstart ; Store Run Address in XAR7 LCR copy ; Branch to Copy 另外,我不清楚要怎么样在烧入DSP后,怎么样进行单步调试 |
|
|
|
www033 发表于 2018-6-6 08:49 我的程序里面有很多部分对时间比较敏感,如果只是拷贝一部分出来,发现程序调用的那一部分还是没有拷贝到RAM中,而是在FLASH中运行,会导致中断服务程序跑不完。例如这样的程序: A() [ B(); C(); D(); …… ] 我用#pragma和memcopy配合,把A()拷贝到RAM里面,但是B(),C()的程序并未拷贝进去,同时我发现,即使我把A(),B(),C()……用memcopy全部拷贝到RAM,运行速度也会比仿真的时候慢。因此,我只能把整个.text拷贝到RAM中执行,这样程序运行速度和仿真没什么区别。 |
|
|
|
www033 发表于 2018-6-6 08:49 我的程序里面有很多部分对时间比较敏感,如果只是拷贝一部分出来,发现程序调用的那一部分还是没有拷贝到RAM中,而是在FLASH中运行,会导致中断服务程序跑不完。例如这样的程序: A() [ B(); C(); D(); …… ] 我用#pragma和memcopy配合,把A()拷贝到RAM里面,但是B(),C()的程序并未拷贝进去,同时我发现,即使我把A(),B(),C()……用memcopy全部拷贝到RAM,运行速度也会比仿真的时候慢。因此,我只能把整个.text拷贝到RAM中执行,这样程序运行速度和仿真没什么区别。 |
|
|
|
hjfsywer 发表于 2018-6-6 09:45 如果Ram大,就text段 全部copy吧。 那2个warning,应该是你没有用switch 和 const 段,不用理会就好了。 如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作! |
|
|
|
www033 发表于 2018-6-6 10:03 可是现在就是SCI中断进不去,接不到数据,这是怎么回事呢,我对照过仿真和烧写模式的map文件,发现基本上没什么差别 |
|
|
|
您只能单步调试,看看程序具体做了些什么变化。注意观察PIE的允许,PIE的Flag等和SCI中断有关的寄存器的变化。 如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作! |
|
|
|
www033 发表于 2018-6-6 10:32 我也遇到这个问题了,不知您解决了没 |
|
|
|
只有小组成员才能发言,加入小组>>
321 浏览 1 评论
523 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
762 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
643 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1119 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
16浏览 28评论
36浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
234浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
191浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
51浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 02:52 , Processed in 1.121029 second(s), Total 95, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号