完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用Keil,设置好向量表在ram中,然后修改程序位置,调试载入时设置pc,sp等,能正常调试。我的程序仅仅就是进入main后,初始化串口,开启systick,然后循环不停打印systick中断程序中自定义的计数器。
但是不经意间发现个问题: 当我拿的芯片设置了读写保护(jlink flash 下点命令 secure chip)后,可以进入调试,但是无法进入中断(暂时只试了systick中断),打印出来的计数器值一直是0,停止调试直接看变量也是0 但是我unsecure chip后,又可以进入中断了,打印和直接看变量,计数器又都正常了。这中断怎么和读写保护位扯上关系了? 然后又实验:用jlink commander,手动loadbin到ram,然后同样设置好pc,sp,xpsr还有vect,然后运行,从打印的结果看,同样中断没起来。但这回是不管有没有开flash读写保护都一样的结果。 有人遇到过同样的问题没??? 求解!!! |
|
相关推荐
1个回答
|
|
在STM32F4系列微控制器中,读写保护(Read-Only Protection,ROP)和写保护(Write-Only Protection,WOP)是一种安全特性,用于保护程序和数据存储区域免受未授权的读写操作。当芯片被设置为读写保护状态时,某些寄存器和存储区域将变得不可写,这可能会影响到中断的正常工作。
在您的情况下,当芯片被设置为读写保护状态时,可能发生了以下几种情况之一: 1. 中断向量表被锁定:当芯片被设置为读写保护状态时,中断向量表可能被锁定,导致中断无法正常触发。这可能是由于中断向量表存储在被保护的存储区域内。 2. 中断服务例程(ISR)被锁定:在某些情况下,中断服务例程可能存储在被保护的存储区域内,导致在读写保护状态下无法执行。 3. 中断寄存器被锁定:STM32F4系列微控制器的中断寄存器可能受到读写保护的影响,导致在保护状态下无法正常配置和触发中断。 为了解决这个问题,您可以尝试以下方法: 1. 确保中断向量表、中断服务例程和中断寄存器都存储在未受保护的存储区域内。这可以通过在Keil中设置适当的内存区域来实现。 2. 在调试过程中,暂时禁用读写保护。这可以通过J-Link命令 `secure chip off` 来实现。请注意,这仅在调试过程中有效,不会影响最终烧录到芯片中的程序。 3. 如果可能,尝试使用其他中断源,以确定问题是否与特定的中断源有关。 4. 检查您的程序中是否有任何可能导致中断寄存器被锁定的操作,例如错误的寄存器配置或写入受保护的存储区域。 5. 如果问题仍然存在,您可能需要查阅STM32F4系列微控制器的参考手册,以获取有关读写保护和中断的详细信息。 总之,读写保护可能会影响中断的正常工作,特别是在保护状态下对中断向量表、中断服务例程和中断寄存器的访问。通过确保这些组件存储在未受保护的存储区域内,或者在调试过程中暂时禁用读写保护,您应该能够解决这个问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
554浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 06:11 , Processed in 1.216827 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号