 
        
        
    | 我用STM32H747的双核HSEM,CM4内核给CM7内核发送HSEM中断,目前的现象是这样的 1 .CM4跑裸机,CM7跑裸机,CM7能正常响应中断并处理 2.CM4跑裸机,Cm7跑FreeRtos,CM7在中断中使用SemaphoreGiveFromISR或任务二值信号量这种信号量时,程序就会卡死在在configASSERT( pxQueue );中,去掉SemaphoreGiveFromISR就正常。 3。怀疑是FreeRtos问题,有做了实验,使用了按键中断,中断优先级和HSEM一样,都是6,在中断可以里使用SemaphoreGiveFromISR或任务二值信号量,不会卡死。 FREERTOS中的优先级数值设定的参数configMAX_SYSCALL_INTERUPT_PRORITY是默认值5 我又看了下,信号量的值是0,因此死在了断言函数中,但不明白为什么信号量时0 请问这是什么问题? | 
求助:STM32H7B0 + QSPI W25Q128JV无法读取ID
STM32H743内部温度传感器读数错误
配置CubeMX后(STM32H723VGT6),自动生成的代码,编译报错
PC在进行程序烧录或芯片擦除时,一直显示"no target connect"可能的原因?
STM32H7A3VGTA QSPI读W25Q128J DMA模式不能工作
STM32H7系列FDCAN配置成经典CAN有没有什么参考的
STM32H7 JPEG硬件编码疑问(非解码)
使用STM32H755的双核单片机的使用问题?
我在积分兑换问题
Nucleo STM32H723ZG 以太网 用CubeMX配置完卡在在mem_init()为什么?
 微信公众号
                微信公众号
             手机版
                手机版
             
		
	
	
	
问题解决了,不是FreeRtos的问题,也不是中断优先级的问题。HSEM的中断我是参考例程做的。
一开始就会用HAL_HSEM_FastTake(HSEM_ID_0); HAL_HSEM_Release(HSEM_ID_0,0);这两条语句来唤醒CPU2,这个时候如果你开了HSEM1中断,就会进入中断。如果你这时候的FreeRtos的信号量和任务还没有创建,此时进入中断后就会出错。调整下顺序,将HAL_HSEM_FastTake(HSEM_ID_0); HAL_HSEM_Release(HSEM_ID_0,0);这2条语句放在创建信号量后和任务调度前面则正常