完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
相关推荐
9 个讨论
|
|
|
至于为什么优化后的代码要关闭全局中断,这里简单说一下,详细的自己了解一下流水线及寄存器的生命周期。 所谓的优化无非是把代码中的延时部分的nop周期用来执行有效代码,这样的结果从汇编代码来看就是乱序了,乱序后的代码是不能随便被中断的,因为中断返回后寄存器的值就有可能不对了,最后执行结果就不对了。所以为了保证优化后的乱序的代码结果正确,那么在进入相关代码前把中断关闭,退出时再打开。 你可以加-K选项,检查一下编译产生的汇编代码,看这个for循环前后是不是有这个全局中断的开关操作。 如果不加-o2, 或o3选项则不会有这个问题,随便可以中断,但是代码效率就慢了。那么这个矛盾怎么解决,则通过-mi选项,参考spru187文档。 如果不想中断被延时太长,或者说想这个时间可控,则在编译选项里加-mi=xxx,这个xxx代码最大可接受的中断延时指令周期数. 另外为什么加了nop后就没事了,因为C代码中插入汇编则优化选项不起作用了,你的for循环是一条一条执行的,随便可以被中断打断。 http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
576 浏览 0 评论
1636 浏览 0 评论
2070 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1527 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1365 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1779浏览 29评论
2806浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1738浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1651浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1665浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-8 18:13 , Processed in 0.972310 second(s), Total 65, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4569