中级会员
 
- 积分
- 384
- 金钱
- 384
- 注册时间
- 2016-12-5
- 在线时间
- 61 小时
|
10金钱
本帖最后由 dai410257573 于 2023-8-18 15:32 编辑
芯片ZYNQ7020 软件vitis2019.2 使用freertos;PL定义了AXI-LITE接口的IP核,包含有一个掩码寄存器和一个数据位寄存器;
使用逻辑:PL产生24KHz中断,PS写数据寄存器,再写掩码寄存器,PL收到后掩码后,使用数据寄存器里面的值。
中断中加入了临界区保护代码;
现象:
1. 有很小的概率情况下,PL取到的IP核里面的寄存器数据是异常的,非写入的值。(通过串口(波特率3M)打印,上位机画图看出异常)
2. PS在中断中写两次数据寄存器,发现PL一样的有取到了错误数据的问题。(通过串口(波特率3M)打印,上位机画图看出异常)
3. PS写了数据寄存器后,再读出来,发现读出来的值,(通过网络传输,上位机画图看出异常)
概率很小,但是会发生。
像各位大佬求助
|
最佳答案
查看完整内容[请看2#楼]
经过检查,是PS在接收数据的时候,偶然被打断了,造成缓存中的数据异常。接收任务中增加临界区保护后改善了。
|