int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
// Flash_Read(¶m);
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_FMC_Init();
MX_USART1_UART_Init();
MX_FDCAN1_Init();
MX_RTC_Init();
/* USER CODE BEGIN 2 */
// Simple_NAND_Test();
// Flash_Read(¶m);
Test_NAND();
HAL_UART_Receive_IT(&huart1,RS485_RxBuffer,RS485_RX_LEN);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
一块板子加上Flash_Read(¶m);函数可以运行,另一块一样的板子加上这个函数,一点Debug就会出现Cannot halt the core现象,跳转不到调试界面 |
注意Option byte 的值。
擦除过,只要添加Flash_Read函数,就会出现,只要将这个函数注释掉,就不会出现这个现象
发一个简化版的工程上来,大家帮你试试看。
十之**运行该函数时程序跑飞了。
重点检查下有无发生越界访问、非对齐访问、堆栈溢出方面的问题。
是否出现串口中断导致?