|
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()时,就停在上述红色标注的位置处,有谁知道原因吗? |
简单平稳过度-回顾2025&说说我心中的ST中文论坛
我最近在用stm32f407做CAN通讯的回环+静默,但是现在显示可以成功发送数据,FIFO接收不到数据,这是什么原因啊
CubeAI如何加载caffe模型
stm32f407的adc采样不稳?
STM32F407VET6 能适配哪些FATFS版本文件
stm32 定时器外部时钟1的TI1FP1及TI2FP2的设置问题
STM32F1定时器中触发信号TRC的来源及选择配置是怎么样的
无刷电机PWM输出配置
CubeMX+STM32F407VGT6+配置lwip的httpd功能,工程编译报错
workbench5.3.1生成代码问题
微信公众号
手机版
说明你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