(1) DDR型号
(2) FLASH型号
(3) 时钟频率
(4) UART配置
4.1 DDR参数修改
EVM板用的是 mDDR,大多数用户用的是 DDR2,需要修改 OMAP-L138/Common/SRC/devICe.c文件中函数Uint32 DEVICE_ExternalMEMInit( )的 5个 DDR参数值。这个函数同样被 UBL调用,如果不用 UBL,则要在AISgen界面里配置正确的 DDR参数。
可使用 TI提供的 DDR寄存器配置工具[5]。根据 DDR手册进行 DDR参数的计算,
4.2 SPI flash
如果更改了 SPI flash的硬件连接,可在 OMAP-L138Commonincludedevice_spi.h文件中修改配置。
#define DEVICE_SPIBOOT_PERIPHNUM (1)//选择 SPI1
#define DEVICE_SPI_UBL_HDR_OFFSET (0*1024)//ubl在 SPI flash中的偏移地址
#define DEVICE_SPI_APP_HDR_OFFSET (64*1024)//application image在 SPI flash中的偏移地址如果更换了与 EVM板不同的 SPI flash,必要时需要修改如下两个文件:
OMAP-L138CommondriversincludeSpi_mem.h
OMAP-L138CommondriverSSRCSPi_mem.c
4.3 NAND flash
NAND flash的数据位宽配置在 OMAP-L138Commonincludedevice_async_mem.h文件中定义:
#define DEVICE_ASYNC_MEM_NANDBOOT_BUSWIDTH (DEVICE_BUSWIDTH_8BIT)
如果 NAND flash更换的与 EVM上的不同,必要时需要修改如下两个文件
OMAP-L138CommondriversincludeDevice_nand.h
OMAP-L138CommondriverssrcDevice_nand.c
4.4 NOR flash
NOR flash是标准设备,除了时序参数之外,一般不需要修改,NOR flash相关代码文件如下:
OMAP-L138_FlashAndBootUtils_2_40Commondriverssrcnor.c
OMAP-L138_FlashAndBootUtils_2_40Commondriversincludenor.h
OMAP-L138Commonsrcdevice_async_mem.c
OMAP-L138Commonincludedevice_async_mem.h
OMAP-L138_FlashAndBootUtils_2_40Commondriverssrc async_mem.c
4.5 时钟及 PLL
如果外部输入时钟频率不是 24MHz,则需要 OMAP-L138Commonsrcdevice.c文件中函数DEVICE_PLL0Init()和 DEVICE_PLL1Init()的参数值。
函数原型 Uint32 DEVICE_PLL0Init(Uint8 clk_src, Uint8 pllm, Uint8 prediv, Uint8 postdiv, Uint8 div1 ,Uint8 div3, Uint8 div7)中 pllm是 PLL的倍频系数,主频计算公式为:
函数 DEVICE_PLL1Init()参数含义与 PLL0的类同,为 DDR提供时钟。
4.6 UART配置
如果系统主频发生变化,相应的模块时钟也改变,调试串口的分频值需要做相应调整,否则串口输出会因为波特率不正确而出现乱码。根据不同的主频修改 OMAP-L138Commonsrcdevice_uart.c中 DEVICE_UART_config的 UART时钟分频系数 divider的值,得到合适的 UART波特率。
如果不是用 UART2做为调试串口,修改 OMAP-L138Commoninclude device_uart.h文件中的DEVICE_UART_PERIPHNUM定义。
5. OMAP-L138_FlashAndBootUtils编译环境搭建
在根据硬件改动,修改了代码后,需要对工具包重新编译,生成 UBL和 sfh_OMAP-L138.exe。如果在 Linux下使用此工具,需要在 Linux下进行编译(具体编译过程参考参考文献 4)。下面介绍如何在Windows环境下搭建OMAP-L138_FlashAndBootUtils的编译环境。
编译环境需要的几个工具如下[6]:
(1) cygwin
(2) .NET framework
(3) ARM Compiler tools(CodeSourcery G++ Lite)
(4) C6x Compiler Tools
(5) CCSV5
5.1 Cygwin安装
从 http:/ / www. cygwin. com/下载并运行在线安装工具setup.exe,注意安装路径中不能带有空格。具体步骤如下:
1) 选择从互联网安装;也可以选择先下载,再从本地安装。
2) 选择安装路径。
3)可选择直接连接或使用代理。
4) 选择从哪个网址或者服务器上进行下载。
5) 选择安装包
一般选择以下三项,其他默认即可。
• Devel-->make: The GNU version of the 'make' utility
• Devel-->subversion: A version control subsystem
• Editor-->vim (or similar)
安装后要先运行一次 cygwin 后,才会在 cygwin/home/下出现 Administrator 目录,进入该目录,修改.bashrc。
同时,需要验证变量TMP和 TEMP是否包含/tmp。使用如下命令:
echo $TMP
echo $TEMP
如果找不到"unset TMP" and "unset TEMP",可在cygwinhome[user].bashrc 文件中添加如下命令创建:
export TMP=/tmp
export TEMP=/tmp
设置完后,重新打开cygwin即可。至此,cygwin安装完成。
5.2 NET framework
从下面网址下载安装最新的.NET Framework(4.0或者更高的版本)
http:/ / www. mICroSOFt. com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=en
安装默认路径为 C盘。然后将 C#编译器路径添加到 windows系统环境变量中。进入目录
C:WINDOWSMicrosoft.NETFramework查看软件的版本号并复制,如
C:WINDOWSMicrosoft.NETFrameworkv4.0.30319。然后右键我的电脑->属性->高级->环境变量,如图 13所示,选择系统变量中的 path 点击编辑,在原有变量值后粘帖添加刚刚复制的内容,路径之间以’;’分隔。至此,Net Framework安装结束。
5.3 C6x Compiler Tools
在 CCSV5安装目录下 ccsv5toolscompilerc6000_7.3.4即为 C6x编译器目录,在 CCSV3.3下的路径为CCStudio_v3.3C6000cgtoolsbin。如果没有安装 CCS,从下面网址下载 TI的 C6x 编译工具并安装,如不确认版本则下载最新版本。
https:/ / www-a. ti. com/ downloads/ sds_support/ TICodegenerationTools/download. htm
将C6x编译器路径添加到windows