完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目前的平台是:在STM32 F207上跑FreeRtos系统
现象:操作VK3366这款芯片时(扩展了一个串口,其中串口接收通过中断来实现的),发现有时(时间不定,有时跑几个小时,有时几天)读取的寄存器的值是错误的(乱的) 原因分析:推测可能执行读操作时,被接收中断给断掉啦 问题1:FreeRtos中的优先级和F207中的中断优先级有关系吗?是如何关联的 问题2:如何保证FreeRtos中运行的函数不被,底层的硬件中断打断 肯请熟悉的大侠指点,小弟在此拜谢!!! |
|
相关推荐
15个回答
|
|
|
|
|
|
非常感谢你的回复
现在中断优先级是这样设定的 #define configKERNEL_INTERRUPT_PRIORITY 255 #define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent to 0xb0, or priority 11. */ VK3366中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F; 不被硬件中断,可能没有表述清楚,是这样的,在执行下边这个函数时,不想被VK3366的接收中断,因为在中断中也会操控VK3366的寄存器,也就是说有没有什么方法使得下边的函数时一个原子操作 void UART_SendData( uint16_t UARTx, uint16_t data ) { uint16_t ch, data1, addr; /* Check the parameters */ assert_param(IS_UART_ALL_PERIPH(UARTx)); ch = UARTx; addr = SFDR << 9; data1 = 0x8000 | ch | addr | data ; SPI_VK3366_CS_LOW();//ê1?üVK3224μ?SPI1|?ü SPI_Send_Data( data1 ); SPI_VK3366_CS_HIGH(); } |
|
|
|
1、 如果想屏蔽中断,则进入临界区,你百度下FREERTOS的临界区函数,我是记不住这个,用到时,也是百度函数名的
2、那个191就是相当于STM32的优先级11 你别的中断,如果用了freertos的API ,优先级则不可大于11 |
|
|
|
|
|
|
|
|
|
|
|
现在在工程中搜索了一下这个函数
NVIC_PriorityGroupConfig 发现有的地方用了分组1,有的地方用了分组2,还有的没有设定分组,是不是都要统一都要使用分组4 另外,freertos里 规定 用第四组中断分配 ,是在哪里配置的? 谢谢 |
|
|
|
全工程只需要一个NVIC_PriorityGroupConfig 来配下分组
不明白你为什么好几个 至于为什么需要用第四组,freertos就是这么规定的,没什么需要配置的 |
|
|
|
对你的回复深表感谢
分组好几个是因为:NVIC_PriorityGroupConfig 在USART、USB、Ethernet初始化的时候,做了调用,并且配置了不同的值(自己对分组没有理解过) 再次对你的帮助表示感谢,有机会来江苏时请你喝茶!!! |
|
|
|
|
|
|
|
|
|
|
|
都跟你说 不要超过11! 你设成0 不是作死么
|
|
|
|
惭愧还是没搞明白你的意思
网口中断分组设置成2,优先级设置成 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; STM32官网上freertos+lwip例程就是这么设定的啊 |
|
|
|
越来越糊涂啦
|
|
|
|
#define configKERNEL_INTERRUPT_PRIORITY 255
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 191 /* equivalent to 0xb0, or priority 11. */ #define configLIBRARY_KERNEL_INTERRUPT_PRIORITY 15 这三个值分别是什么意思?是如何和STM32中的中断对应的? 使用 NVIC_PriorityGroupConfig();函数时应该传入分组几?(stm32官网上是使用的分组2) NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority这个优先级复制都应该在0x8之上??? 刚开始捣鼓没多久,还望赐教, |
|
|
|
好的,谢谢
|
|
|
|
只有小组成员才能发言,加入小组>>
702 浏览 0 评论
1111 浏览 1 评论
2476 浏览 5 评论
2810 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2654 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
656浏览 9评论
651浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
786浏览 6评论
632浏览 5评论
675浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 21:58 , Processed in 1.272388 second(s), Total 108, Slave 89 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号