asd51310123 发表于 2019-1-23 21:06:57

stm32f0 IAP USB問題

这是我的的main code,我想问的是当我开启__HAL_SYSCFG_REMAPMEMORY_SRAM();的时候,我的MX_USB_DEVICE_Init();,却出现无法辨认,我不ˊ知道是不是register address問題,要怎么解决这个问题?

如果不开__HAL_SYSCFG_REMAPMEMORY_SRAM();,我USB就能正常的work。

使用debug的時候,会出现cannot access memory这个问题,之后就卡在MX_USB_DEVICE_Init();无法再持续下去了。

#define MAIN_CODE_ADDRESS0x08004000
__IO uint32_t VectorTable[48] __attribute__((section(".RAMVectorTable")));

int main(void)
{
/* USER CODE BEGIN 1 */
      uint32_t i = 0;
      
      
/* USER CODE END 1 */

/* MCU Configuration----------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_DeInit();
HAL_Init();

/* USER CODE BEGIN Init */
      
/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

      for(i = 0; i < 48; i++)
{
    VectorTable = *(__IO uint32_t*)(MAIN_CODE_ADDRESS + (i<<2));
}
               
//      __HAL_RCC_SYSCFG_CLK_ENABLE();
//      __HAL_RCC_APB2_FORCE_RESET ();
      __HAL_SYSCFG_REMAPMEMORY_SRAM();
/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_I2C1_Init();
MX_CAN_Init();
MX_USB_DEVICE_Init();//cannot access memory
MX_USART3_UART_Init();
MX_DAC_Init();
MX_ADC_Init();
MX_TIM1_Init();
/* USER CODE BEGIN 2 */
      MX_FILTER_Init();
...
.....
........
}

hihi22 发表于 2019-1-24 11:12:44

跟踪__HAL_SYSCFG_REMAPMEMORY_SRAM()函数的作用。

zoomdy 发表于 2019-1-24 14:21:59

你要把你用的MCU的具体型号给出来,stm32f0有好几个系列,不知道你说的是哪个

asd51310123 发表于 2019-1-24 15:03:21

zoomdy 发表于 2019-1-24 14:21
你要把你用的MCU的具体型号给出来,stm32f0有好几个系列,不知道你说的是哪个 ...

型號 STM32F072B -DISCO

页: [1]
查看完整版本: stm32f0 IAP USB問題