当前文档版本为 v0.1.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

fmc_base例程

1 功能概述

本代码示例主要演示fmc外设的读写操作,擦写读程序区未使用的区域和系统参数区,并将操作过程通过串口打印出来。

2 环境要求

  • Board: PAN2628b1_evb

  • 将 J19(P3_1) 开关拔至TX侧,将P3_1与uart的TX引脚相连

  • 将USB线分别连接至电脑与evb板的UART MicroUSB接口

3 编译和烧录

例程位置:pan2628_dk\01_SDK\example_basic\fmc\fmc_base

打开目录下keil下的fmc_base.uvprojx工程,编译整个代码工程。

4 演示说明

根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载:

  1. 在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验

  2. 烧录程序后,观察串口打印的内容,看看是否有fmc base test.信息输出

  3. 观察所有打印信息是否正确,系统参数区内容在正式芯片出厂后会有相应的值

串口输出信息如下:

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 0x8184, value is 0xff

fmc system param addr is 0x8185, value is 0xff

fmc system param addr is 0x8186, value is 0xff

fmc system param addr is 0x8187, value is 0xff

fmc system param addr is 0x8188, value is 0xff

fmc system param addr is 0x8189, value is 0xff

fmc system param addr is 0x818a, value is 0xff

fmc system param addr is 0x818b, value is 0xff

fmc system param addr is 0x818c, value is 0xff

fmc system param addr is 0x818d, value is 0xff

fmc system param addr is 0x818e, value is 0xff

fmc system param addr is 0x818f, value is 0xff

fmc system param addr is 0x8190, value is 0xff

fmc system param addr is 0x8191, value is 0xff

fmc system param addr is 0x8192, value is 0xff

fmc system param addr is 0x8193, value is 0xff

fmc system param addr is 0x8194, value is 0xff

fmc system param addr is 0x8195, value is 0xff

fmc system param addr is 0x8196, value is 0xff

fmc system param addr is 0x8197, value is 0xff

fmc system param addr is 0x8198, value is 0xff

fmc system param addr is 0x8199, value is 0xff

fmc system param addr is 0x819a, value is 0xff

fmc system param addr is 0x819b, value is 0xff

fmc system param addr is 0x819c, value is 0xff

fmc system param addr is 0x819d, value is 0xff

fmc system param addr is 0x819e, value is 0xff

fmc system param addr is 0x819f, value is 0xff

fmc system param addr is 0x81a0, value is 0xff

fmc system param addr is 0x81a1, value is 0xff

fmc system param addr is 0x81a2, value is 0xff

fmc system param addr is 0x81a3, value is 0xff

fmc system param addr is 0x81a4, value is 0xff

fmc system param addr is 0x81a5, value is 0xff

fmc system param addr is 0x81a6, value is 0xff

fmc system param addr is 0x81a7, value is 0xff

fmc system param addr is 0x81a8, value is 0xff

fmc system param addr is 0x81a9, value is 0xff

fmc system param addr is 0x81aa, value is 0xff

fmc system param addr is 0x81ab, value is 0xff

fmc system param addr is 0x81ac, value is 0xff

fmc system param addr is 0x81ad, value is 0xff

fmc system param addr is 0x81ae, value is 0xff

fmc system param addr is 0x81af, value is 0xff

fmc system param addr is 0x81b0, value is 0xff

fmc system param addr is 0x81b1, value is 0xff

fmc system param addr is 0x81b2, value is 0xff

fmc system param addr is 0x81b3, value is 0xff

fmc system param addr is 0x81b4, value is 0xff

fmc system param addr is 0x81b5, value is 0xff

fmc system param addr is 0x81b6, value is 0xff

fmc system param addr is 0x81b7, value is 0xff

fmc system param addr is 0x81b8, value is 0xff

fmc system param addr is 0x81b9, value is 0xff

fmc system param addr is 0x81ba, value is 0xff

fmc system param addr is 0x81bb, value is 0xff

fmc system param addr is 0x81bc, value is 0xff

fmc system param addr is 0x81bd, value is 0xff

fmc system param addr is 0x81be, value is 0xff

fmc system param addr is 0x81bf, value is 0xff

fmc system param addr is 0x81c0, value is 0xff

fmc system param addr is 0x81c1, value is 0xff

fmc system param addr is 0x81c2, value is 0xff

fmc system param addr is 0x81c3, value is 0xff

fmc system param addr is 0x81c4, value is 0xff

fmc system param addr is 0x81c5, value is 0xff

fmc system param addr is 0x81c6, value is 0xff

fmc system param addr is 0x81c7, value is 0xff

fmc system param addr is 0x81c8, value is 0xff

fmc system param addr is 0x81c9, value is 0xff

fmc system param addr is 0x81ca, value is 0xff

fmc system param addr is 0x81cb, value is 0xff

fmc system param addr is 0x81cc, value is 0xff

fmc system param addr is 0x81cd, value is 0xff

fmc system param addr is 0x81ce, value is 0xff

fmc system param addr is 0x81cf, value is 0xff

fmc system param addr is 0x81d0, value is 0xff

fmc system param addr is 0x81d1, value is 0xff

fmc system param addr is 0x81d2, value is 0xff

fmc system param addr is 0x81d3, value is 0xff

fmc system param addr is 0x81d4, value is 0xff

fmc system param addr is 0x81d5, value is 0xff

fmc system param addr is 0x81d6, value is 0xff

fmc system param addr is 0x81d7, value is 0xff

fmc system param addr is 0x81d8, value is 0xff

fmc system param addr is 0x81d9, value is 0xff

fmc system param addr is 0x81da, value is 0xff

fmc system param addr is 0x81db, value is 0xff

fmc system param addr is 0x81dc, value is 0xff

fmc system param addr is 0x81dd, value is 0xff

fmc system param addr is 0x81de, value is 0xff

fmc system param addr is 0x81df, value is 0xff

fmc system param addr is 0x81e0, value is 0xff

fmc system param addr is 0x81e1, value is 0xff

fmc system param addr is 0x81e2, value is 0xff

fmc system param addr is 0x81e3, value is 0xff

fmc system param addr is 0x81e4, value is 0xff

fmc system param addr is 0x81e5, value is 0xff

fmc system param addr is 0x81e6, value is 0xff

fmc system param addr is 0x81e7, value is 0xff

fmc system param addr is 0x81e8, value is 0xff

fmc system param addr is 0x81e9, value is 0xff

fmc system param addr is 0x81ea, value is 0xff

fmc system param addr is 0x81eb, value is 0xff

fmc system param addr is 0x81ec, value is 0xff

fmc system param addr is 0x81ed, value is 0xff

fmc system param addr is 0x81ee, value is 0xff

fmc system param addr is 0x81ef, value is 0xff

fmc system param addr is 0x81f0, value is 0xff

fmc system param addr is 0x81f1, value is 0xff

fmc system param addr is 0x81f2, value is 0xff

fmc system param addr is 0x81f3, value is 0xff

fmc system param addr is 0x81f4, value is 0xff

fmc system param addr is 0x81f5, value is 0xff

fmc system param addr is 0x81f6, value is 0xff

fmc system param addr is 0x81f7, value is 0xff

fmc system param addr is 0x81f8, value is 0xff

fmc system param addr is 0x81f9, value is 0xff

fmc system param addr is 0x81fa, 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