MFC5272_BOOTROM开发笔记
### MFC5272_BOOTROM开发笔记 #### 概述 MFC5272_BOOTROM开发笔记是一份详尽记录了MFC5272_BOOTROM开发过程的技术文档,作者为amine@263.net,创建日期为2003年6月11日。这份文档旨在从各个角度描述开发过程中的关键步骤,并对一些特定问题进行了专题讨论。需要注意的是,文档可能存在一些小错误或与实际代码不完全一致的地方,例如特殊符号(如`#`,`@`)的使用、缓存使能(`cache enable`)设置等。 #### 主要知识点 ##### BOOT Flash配置与管理 - **Boot Flash分区**:MFC5272_BOOTROM中Boot Flash被划分为两部分,一部分用于存放Boot ROM代码,另一部分用于文件系统。Boot ROM区的起始地址为`0xFFC00000`,大小为512KB;文件系统区的起始地址为`0xFFC80000`,大小为512KB * 3 = 1.5MB。 - **文件系统挂载路径**:默认情况下,文件系统挂载路径为`/data/`。通过调用`usrTffsConfig`函数可以实现文件系统的挂载。例如,在`bootConfig.c`文件中有如下示例代码: ```c printf("Attaching to /data/\n"); if (usrTffsConfig(1, 0, "/data/vxworks") == ERROR) { printf("usrTffsConfig failed.\n"); } else { printf("done.\n"); } ``` - **VxWorks初始化时的Flash配置**:在`sysTffs.c`文件中定义了与Flash相关的宏,如`FLASH_BASE_ADRS`, `FLASH_SIZE`, `FLASH_BOOT_ADRS` 和 `FLASH_BOOT_SIZE`。这些宏定义了Flash的基地址和大小。例如,Flash基地址被定义为`0xFFE10000`,Flash总大小定义为`0x001F0000`。 ##### Socket驱动配置 - **Socket注册与配置**:在`sysTffsInit`函数中,通过调用`rfaRegister()`进行Socket注册。其中`noOfDrives`表示当前注册的驱动器数量,`vol.serialNo`则标识了该驱动器的序列号。对于不同的序列号,其对应的Flash窗口(即存储区域)的基地址也不同。例如: - 当`noOfDrives`等于0时,Flash窗口的基地址为`FLASH_BASE_ADRS`; - 当`noOfDrives`等于1时,Flash窗口的基地址为`FLASH_BOOT_ADRS`。 - **内存映射函数**:在`lv160mtd.c`文件中,`lv160MTDMap1`函数实现了根据`vol->socket->serialNo`来决定内存映射的地址。例如: ```c static void FAR0* lv160MTDMap1(FLFlash* vol, CardAddress addr, int length) { UINT32 ret; /* 根据 vol->socket->serialNo 来决定内存映射地址 */ ret = FLASH_BOOT_ADRS + addr; return (void FAR0*)ret; } ``` ##### 文件系统驱动配置 - **文件系统驱动初始化**:在`sysTffs.c`文件中,通过调用`flSetWindowSize`来设置文件系统的窗口大小。对于不同的序列号,窗口大小也会有所不同。例如: - 当`vol.socket->serialNo`等于0时,窗口大小设置为`FLASH_SIZE`; - 当`vol.socket->serialNo`等于1时,窗口大小设置为`FLASH_BOOT_SIZE`。 - **文件系统识别**:在`lv160mtd.c`文件中,通过检查`vol.socket->serialNo`来决定如何配置文件系统。例如: ```c if (vol.socket->serialNo == 0) { flSetWindowSize(vol.socket, FLASH_SIZE >> 12); vol.chipSize = FLASH_SIZE; vol.map = lv160MTDMap0; } else if (vol.socket->serialNo == 1) { flSetWindowSize(vol.socket, FLASH_BOOT_SIZE >> 12); vol.chipSize = FLASH_BOOT_SIZE; vol.map = lv160MTDMap1; } ``` #### 总结 MFC5272_BOOTROM开发笔记详细记录了MFC5272_BOOTROM开发过程中涉及的关键步骤和技术细节,包括Boot Flash的配置与管理、Socket驱动配置以及文件系统驱动配置等内容。这些技术点对于理解和开发基于MFC5272的嵌入式系统具有重要的参考价值。同时,文档中提到的一些小差异提示开发者在实践中需要注意代码与文档之间的差异性,确保系统的正确性和稳定性。
- syq200812013-04-18还可以,有参考价值
- qiushuichangtian1232013-01-05好东西!分析很详细!!
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助