本帖最后由 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)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
楼主能否提供以下信息::
1. 是否能运行进入main函数
2. Heap大小是否大于256字节
3. 出问题的时候,停在哪里?(请提供汇编视图截图)
4. 请提供出问题时候的Fault Report 截图(这是一个窗体),以及通用寄存器的截图
C代码卡这个位置,多半是C环境不完善,例如没有提供malloc、fputc、初始化一类的
感谢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 截图(这是一个窗体),以及通用寄存器的截图
如附件
一周热门 更多>