微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > OMAP-L138_FlashAndBootUtils使用及编译指导

OMAP-L138_FlashAndBootUtils使用及编译指导

时间:05-06 来源:德州仪器 点击:

  

  图 3 AISgen 配置界面

  该命令将 AIS格式的 UBoot文件写到 flash的起始地址。命令执行显示结果如图 4所示:重新上电,从图 5启动信息可见没有 UBL的运行信息,是直接从 UBoot运行的。

  

  图 4 sfh_OMAPL138.exe –flash_noubl命令运行界面

  重新上电,从图 5启动信息可见没有 UBL的运行信息,是直接从 UBoot运行的。

  

  图 5 从 UBoot直接运行界面

  3.3烧写 UBL和 UBoot

  sfh_OMAP-L138.exe –targetType OMAP-L138 –flashType SPI_MEM -flash ubl-spi-ais.bin u-boot.bin命令执行结果显示如图 5所示。该命令将 ubl-spi-ais.bin写到 flash的起始地址,u-boot.bin写到 flash的0x10000的偏移地址。

  

  图 6 sfh_OMAPL138.exe –flash命令运行界面

  UBL和 UBoot烧写完后,关闭 EVM板电源,按图 6所示,将 EVM板的 S7开关设为 SPI flash启动。

  

  图 7 S7开关设置为 SPI Flash启动

  打开串口终端如 Hyper terminal,打开 EVM板电源,串口终端输出信息如图 7所示,表示 UBL和 UBoot成功烧写,并成功从 SPI flash启动

  

  图 8 终端调试信息输出

  使用 sfh_OMAP-L138.exe烧写 UBL和 UBoot时,建议使用工具包自带的 UBL。因为 UBoot的烧写地址,要与 UBL的读取地址一致,这样 UBL运行时,才能正确的读取 UBoot。工具包自带的 UBL与烧写工具保证了这一点。其它版本的 UBL需要用户自行确认。

  4. 根据硬件改动修改 serial flash utility

  开发者自己的硬件板与 TI的 EVM比较,会影响工具使用的不同部分可能存在于:

  (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-L138\Common\include\device_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-L138\Common\drivers\include\Spi_mem.h

  OMAP-L138\Common\drivers\src\Spi_mem.c

  4.3 NAND flash

  NAND flash的数据位宽配置在 OMAP-L138\Common\include\device_async_mem.h文件中定义:

  #define DEVICE_ASYNC_MEM_NANDBOOT_BUSWIDTH (DEVICE_BUSWIDTH_8BIT)

  如果 NAND flash更换的与 EVM上的不同,必要时需要修改如下两个文件

  OMAP-L138\Common\drivers\include\Device_nand.h

  OMAP-L138\Common\drivers\src\Device_nand.c

  4.4 NOR flash

  NOR flash是标准设备,除了时序参数之外,一般不需要修改,NOR flash相关代码文件如下:

  OMAP-L138_FlashAndBootUtils_2_40\Common\drivers\src\nor.c

  OMAP-L138_FlashAndBootUtils_2_40\Common\drivers\include\nor.h

  OMAP-L138\Common\src\device_async_mem.c

  OMAP-L138\Common\include\device_async_mem.h

  OMAP-L138_FlashAndBootUtils_2_40\Common\drivers\src\ async_mem.c

  4.5 时钟及 PLL

  如果外部输入时钟频率不是 24MHz,则需要 OMAP-L138\Common\src\device.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-L138\Common\src\device_uart.c中 DEVICE_UART_config的 UART时钟分频系数 divider的值,得到合适的 UART波特率。

如果不是用 UART2做为调试串口,修改 OMAP-L138\Common\include\ device_uart.h文件中的DEVICE_UART_PERI

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top