今天调试UCOSiii的程序,遇到一个问题,程序停止在等待PLL工作的while循环中。
硬件环境: stm32f439igt单板
软件环境: UCOSIII,代码从USOS官网直接下单,没有做任何改动
编译环境: IAR
最近有个项目用到了STM32F439, 客户要求跑一个小的系统调度内核,UCOSII或者UCOSIII。
所以就直接去UCOS的官网查找了一下,还真有439内核的UCOS, 下载下来,编译,连接仿真器运行。
发现程序移植停止在这个函数中:
void BSP_Init (void)
{
CPU_INT32U reg_val;
CPU_INT32U hse_rdyctr ;
BSP_IntInit();
/* ---------- RESET CLOCK CONFIG. REGISTERS ----------- */
DEF_BIT_SET(BSP_REG32_RCC_CR,BSP_BIT_RCC_CR_HSION); /* Set HSION bit */
BSP_REG32_RCC_CFGR = (CPU_INT32U)0u; /* Reset CFGR register */
BSP_REG32_RCC_CR &= 0xFEF6FFFFu; /* Reset HSEON, CSSON and PLLON bits */
BSP_REG32_RCC_PLLCFGR = BSP_MSK_RCC_PLLCFGR_RST; /* Reset PLLCFGR register */
DEF_BIT_CLR(BSP_REG32_RCC_CR, BSP_BIT_RCC_CR_HSEBYP); /* Reset HSEBYP bit */
/* ----------- HSE OSCILLATOR CONFIGURATION ----------- */
/* HSE = 8MHz Ext. crystal. */
DEF_BIT_C