[求教]使用AC5编译正常,换AC6.11就停在R0, =SystemInit

2019-12-09 19:58发布

本帖最后由 DIY7777 于 2019-10-29 12:56 编辑

专案使用AC5编译程序都可以正常运行
但因为编译很慢
改用AC6.11编译(no error)
虽然很快
但却会发生
while(1)()前的程序都会运行
但运行完
就停在R0, =SystemInit(进debug看)
搜网上资料&方法都没效
只好求助伟大的论坛
可有解方??

环境:
Win8.1 64b
Keil MDK 5.27
STM32CubeMX 5.4
使用MCU 32F407VG
专案中有使用printf(USART1)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
DIY7777
2019-12-10 09:00
Gorgon_Meducer 发表于 2019-10-29 17:34
楼主能否提供以下信息::
1. 是否能运行进入main函数
2. Heap大小是否大于256字节

感谢Gorgon_Meducer回覆

1. 是否能运行进入main函数

可进入
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 */
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART1_UART_Init();
  MX_ADC1_Init();
  MX_DAC_Init();
  /* USER CODE BEGIN 2 */
  HAL_SYSTICK_Config(SystemCoreClock/1000);
  HAL_UART_Receive_IT(&huart1,uart1RxBuf,1);
  HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_Value, 100);
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    do something.........
  }
}
但while(1)内程式不运行

2. Heap大小是否大于256字节

Heap是??

3. 出问题的时候,停在哪里?(请提供汇编视图截图)
如附件

4. 请提供出问题时候的Fault Report 截图(这是一个窗体),以及通用寄存器的截图
如附件




一周热门 更多>