
OSStartHighRdy LDR R4, =NVIC_SYSPRI2 ; set the PendSV exception priority LDR R5, =NVIC_PENDSV_PRI STR R5, [R4] MOV R4, #0 ; set the PSP to 0 for initial context switch call MSR PSP, R4 LDR R4, =OSRunning ; OSRunning = TRUE MOV R5, #1 STRB R5, [R4] ;Çл»µ½×î¸ßÓÅÏȼ¶µÄÈÎÎñ LDR R4, =NVIC_INT_CTRL ;rigger the PendSV exception (causes context switch) LDR R5, =NVIC_PENDSVSET STR R5, [R4] CPSIE I ;enable interrupts at processor level OSStartHang B OSStartHang ;should never get here 之前程序的功能一直是正常的,在工程打开时,压缩一下工程,再运行时,运行这个函数OSStart()时,就停在上述红色标注的位置处,有谁知道原因吗? |
littlefs系统能读写SD卡吗?
STM32F405的ADC功耗参数不理解
STM32F405RGT6 ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机(取消中断后完全正常)
CUBEIDE1.19.0
stm32支持canfd和dma结合使用吗
NUCLEO-F401RE板卡,连接USB,在KEIL下可以找到ST-LINK仿真器,也可以下载代码。在电脑上看不到NODE_F401RE的磁盘,有知道是什么原因?
程序进入HardFault_Handler求解
STM32CUBEIDE
This example describes how to configure the FMC controller to access the SDRAM memory in low power mode
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
说明你xxxx.S启动文件的中断向量表PendSV入口函数跟uCOS-II的入口函数不统一。
另外SysTick也有这个问题,要注意。
PendSV 的函数名都是PendSV_Handler 完全一样的。
方便的话,上传你的移植工程看看。
int main(void)
{
delay_init(10); //ÑÓʱ³õʼ»¯
Init_Gpio();
uart_init(9600);
//´®¿Ú²¨ÌØÂÊÉèÖÃ
USART_SendData(USART1, 0xaa); //for test use
OSInit(); //UCOS³õʼ»¯
OSTaskCreate(CMD_task,(void*)0,(OS_STK*)&CMD_TASK_STK[CMD_STK_SIZE -1],CMD_TASK_PRIO);//prio=5
OSStart(); //¿ªÊ¼ÈÎÎñ
}
程序死在OSStart();
应该是要多个task的吧,你再开一个试试
cmd task 中创建了3个其它的task