
MCU为STM32H743。 因为正在做的项目的数据量比较大,所以要将某些大的数组放到SDRAM中。我在ld文件中的段定义如下图: MEMORY { FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K SDRAM (xrw) : ORIGIN = 0xc0000000, LENGTH = 32768K } .SDRAM_Area : { . = ALIGN(4); KEEP(*(.SDRAM_Area)) . = ALIGN(4); } >SDRAM 所使用的数组定义如下: attribute((section(".SDRAM_Area"))) __IO uint8_t Rx6Buf[1460]; 编译后,进行debug时出现如下的错误: 请问下各路大神,这是什么原因。 |
安装STM32CUBEIDE时提示Error launching installer,我的电脑设置的是中文简体,杀毒软件也推出了,怎么才能安装软件?
STM32CubeIDE报错
SDIO读取TF卡,1bit模式正常,4bit模式无法读取
cudeide执行run是烧录还是只是执行呢
cubeIDE在run后出现错误
在STM32Cube IDE1.18.0里 写ODR 编译不成,咋办?
CUEBIDE生成的APP程序,在写入FLASH之后无法正常跳转。
有关Cubeide IAP 问题
Cubeide1.18.1在线调试改变"现场表达式"中的值提示找不到地址
stm32cubeide中如何查看版本日志?
从出错提示来看,感觉跟你的变量定义没啥关系。
问题可能跟你的STLINK硬件连接、系统电源、调试配置方面有关。
外接SDRAM的话,注意先初始化后再使用。
那请问下应该如何定义呢。对cubeide实在是不熟悉。如果是MDK的话就简单了。
我的应用就是想将大的数组定义到SDRAM中去。
另外,你可以参考下面写法。
uint8_t Rx6Buf1460] __attribute__((section(".SDRAMSection"))); //是双下划线
.SDRAM_Area (NOLOAD) : {
. = ABSOLUTE(0xc0000000);
*(.SDRAMSection)
} >SDRAM
再次强调下,使用SDRAM之前一定要初始化OK了。
谢谢您,我在main()中做了初始化了
int main(void)
{
/ USER CODE BEGIN 1 /
/ USER CODE END 1 /
/ MPU Configuration--------------------------------------------------------/
MPU_Config();
/ Enable the CPU Cache /
/ Enable I-Cache---------------------------------------------------------/
SCB_EnableICache();
/ Enable D-Cache---------------------------------------------------------/
SCB_EnableDCache();
/ 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_TIM6_Init();
MX_USART1_UART_Init();
MX_USART6_UART_Init(2000000);
MX_FDCAN1_Init();
MX_FDCAN2_Init();
sdram_init();
MX_SDMMC1_SD_Init();
MX_FATFS_Init();
PrintfLogo();
/ USER CODE BEGIN 2 /
//PCF8574_Init();
//HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
//HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
/ USER CODE END 2 /
/ Call init function for freertos objects (in freertos.c) /
MX_FREERTOS_Init();
/ Start scheduler /
osKernelStart();
/ We should never get here as control is now taken by the scheduler /
/ Infinite loop /
/ USER CODE BEGIN WHILE /
while (1)
{
/ USER CODE END WHILE /
/ USER CODE BEGIN 3 / }
/ USER CODE END 3 /
}