fmc_base例程¶
1 功能概述¶
本代码示例主要演示fmc外设的读写操作,擦写读程序区未使用的区域和系统参数区,并将操作过程通过串口打印出来。
2 环境要求¶
Board: PAN2628b1_evb
Micro USB线两2根,一根用于程序下载,一根用于查看串口打印Log
将 J19(P3_1) 开关拔至TX侧,将P3_1与uart的TX引脚相连
3 编译和烧录¶
例程位置:pan2628_dk\01_SDK\example_basic\fmc\fmc_base
打开目录下keil下的fmc_base.uvprojx工程,编译整个代码工程。
4 演示说明¶
根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载:
在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验
烧录程序后,观察串口打印的内容,看看是否有fmc base test.信息输出
观察所有打印信息是否正确,系统参数区内容在正式芯片出厂后会有相应的值
串口输出信息如下:
fmc base test.
fmc system param addr is 0x8180, value is 0xff
fmc system param addr is 0x8181, value is 0xff
fmc system param addr is 0x8182, value is 0xff
fmc system param addr is 0x8183, value is 0xff
................................
fmc system param addr is 0x81fb, value is 0xff
fmc system param addr is 0x81fc, value is 0xff
fmc system param addr is 0x81fd, value is 0xff
fmc system param addr is 0x81fe, value is 0xff
fmc system param addr is 0x81ff, value is 0xff
fmc page erase ok!
fmc get crc ok!
fmc write ok!
fmc cpu write ok!
5 开发说明¶
通过调用 fmc.c 的FMC_PageErase、FMC_Write、FMC_Read、FMC_GetCrc32函数接口来完成fmc的页擦除、写入、读取、获取CRC等操作,也可以通过XBYTE通过MOVX指令来操作Flash。需要注意的使用XBYTE需要先设置MOVX指令操作Flash才行。
//读取系统参数区,正式出厂的芯片会有系统参数区
PCON |= 0x10;//MOVX指令操作flash
for(i = 0; i < 128; i++){
printf("fmc system param addr is 0x%2x, value is 0x%bx\r\n", SYS_PARAM_BASE_ADDR+i, XBYTE[SYS_PARAM_BASE_ADDR+i]);
}
PCON &= 0xEF;//MOVX指令操作xram
6 RAM/Flash资源使用情况¶
Program Size: data=37.1 xdata=0 const=224 code=2691