加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

TI AM3517 EVM 评估板Flash烧写工具中文解析

发布时间:2020-12-15 17:43:06 所属栏目:百科 来源:网络整理
导读:最近一个项目是基于AM3505 zcn处理器,AM3505和3517基本上没有什么差别,3517增加了3D硬件加速,具体大家可以看芯片手册。我参考了LOGIC公司和TI合作的一个评估板(EVM)。里面介绍了两个开发软件,一个是ti-sdk-am3517-evm-06.00.00.00-Linux-x86-Install.b

最近一个项目是基于AM3505 zcn处理器,AM3505和3517基本上没有什么差别,3517增加了3D硬件加速,具体大家可以看芯片手册。我参考了LOGIC公司和TI合作的一个评估板(EVM)。里面介绍了两个开发软件,一个是ti-sdk-am3517-evm-06.00.00.00-Linux-x86-Install.bin的文件,这个是用在Linux端的,里面包含了很多东西(SDK),具体大家自己去看。这里主要介绍一下另外一个开发工具,用于烧写x-loader、u-boot、kernel和文件系统的Flash工具,我下载的是最新的V1.6版本,这里简单的做个中文介绍。

首先,官方文档说,AM3517有两种推荐烧写模式:

一、从USB外部引导模式

1、设置SW4开关的1和4设置ON,其他的设置OFF

2、把USB线连接开发板和PC

3、EVM板上电或者按复位(omap_RST)

4、系统会提示你安装驱动,选择“no,not this time”,然后点击“then”

5、选择"Install from a list or specific location",我安装Flash工具的时候,是默认路径,所以,这里驱动的地址是“Flash安装路径usb_driver_windows”(驱动所在路径),然后不选择“search removable media”,选上“Include this loation in the search”。安装。。。。。

二、从UART串口外部引导

1、SWT开关1和4设置ON,其他的设置OFF

2、连接9针的串口线

这里不需要其他的驱动,你就可以使用Flash工具进行烧写了,很方便。


Flash工具中的目标配置文件,你可以在Flash的安装路径TargetConfigurations下找到,他的作用是相当于X-loader,你用文本浏览器打开你所需要的目标板配置文件你可以发现,里面有很多截取自x-loader里面的代码。它包含初始化寄存器,初始化时钟和内存接口,官方文档说,这个在执行U-boot烧写之前就会被执行,可以预知它的作用就是x-loader,在没有烧写x-loader之前,它可以暂时替代x-loader初始化烧写的必要工作,这样给开发带来了便利。

先讲一下Flash工具GUI界面上的一些选项和设置的作用和含义:

1、ECC STYLE

用于在Nand内生成、检查和调整ECC数据。

2、HWECC用于GPMC控制器计算ECC奇偶校验并软件检查和修正错误

3、SWECC用于软件计算ECC奇偶校验并检查修正错误

4、NAND ECC用于在Nand设备内部ECC控制器计算ECC奇偶校验并且执行错误检查和修正

注:在NAND被初始化之前,用NAND ECC模式,使内部nand设备的ECC被激活

在写x-loader时,总是需要选择HWECC和1-bit ECC,因为内部ROM 的boot-loader(TI公司出厂固化的代码,作用和三星公司内部ROM boot-loader一样--拷贝代码、必要初始化)需要这样设置

在写U-boot或Linux kernel时,ECC style必须设置成compatible with the software(软件兼容),使其可以读取nand中已经下载了的镜像(kernel....)

5、ONFI conpiant nand? 假如选择的话,用于配置nand硬件属性的数据是从nand设备本身读取,否则,从目标配置文件(Flash工具下configuration中的文件)中读取。

6、ERROR Correction 错误修正算法(把ECC数据写入00b地址)

下面讲一下目标配置文件:

指令:

“use0” 指向一个定义文件,列出了大量omap寄存器和他们的地址

“memory” 指定板子的内存设置

“初始化命令” 修改寄存器,用于控制omap的配置和目标板匹配


definition file(定义文件),用于一些宏定义的地址,在配置文件中被使用,最多可以定义1000个

Memories:

memory NAME [driver DRIVER] [parameters PARAMETER1 VALUE1 PARAMETER2 VALUE2 ... PARAMETERN VALUEN]

里面的parameters参数官方文档有说明:

File : nand_onfi_16bit_8bit.bin
Type : NAND
Parameters: gpmc (强制选) Base address of the GPMC in the OMAP
cs (强制选) Chip select where the device is present (or GPMC-config index)
address (强制选) Address of the device as mapped in the GPMC
bberase (强制选) Erase bad blocks in the device (0 for no,1 for yes).
Caution: erasing bad blocks may cause an irreversible loss of manufacturing information.
onfi (可选的) Read and use ONFI device description from the device (0 for no,1 for yes).
bpp (强制选假如onfi = 0) Bytes per page if ONFI information is not used.
sbpp (强制选假如onfi = 0) Spare bytes per page if ONFI information is not used.
ppb (强制选假如onfi = 0) Pages per block if ONFI information is not used
bpl (强制选假如onfi = 0) Blocks per logical unit if ONFI information is not used
l (强制选假如onfi = 0) Logical unit count (only 1 supported by the driver)
acv (强制选假如onfi = 0) Address cycle values - 8 bit value with lower 4 bits for row and upper 4 bits for
column.
f (强制选假如onfi = 0) Features - 16 bit value with bit 0 = 16 bit data operation,rest are don't-care

Examples : memory NAND driver TargetsFlash-Driversnand_onfi_16bit_8bit.bin parameters gpmc 0x6E000000 cs 1 address 0x28000000
bberase 0

对于SDRAM不需要驱动文件,但是要在第一个参数指明内存映射的基地址

最后就是寄存器操作指令了:

都是一些简单的英文,我就不翻译了,大家比对着看一下

WRITE - Write a value to a register
MODIFY - Modify the value of a register
POLL_ZERO - Poll a register value until zero
POLL_NZERO - Poll a register value until not zero
POLL_VALUE - Poll a register until value
WAIT_N - Loop n times in a simple while-loop (where n is a value from 0x0000 to 0xFFFF)
SPIN - Loop forever. This may be used for debugging.
MODE_16 - Use 16 bit register access mode
MODE_32 - Use 32 bit register access mode
The command structures are:
WRITE : WRITE REGISTER VALUE
MODIFY : MODIFY REGISTER MASK VALUE
POLL_ZERO : POLL_ZERO REGISTER MASK
POLL_NZERO : POLL_NZERO REGISTER MASK
POLL_VALUE : POLL_VAL REGISTER MASK VALUE
WAIT_N : WAIT_N N
SPIN : SPIN
MODE_16 : MODE_16
MODE_32 : MODE_32
The definitions included from a definition file specified in a 'use' directive can be used with the commands. Definitions can be used for registers,values and masks,e.g.:
MODIFY CM_CLKEN_PLL_MPU EN_XXX_DPLL_MODE_MASK EN_XXX_DPLL_LOCK_MODE
WRITE CM_CLKSEL3_PLL 0x00000009
POLL_ZERO CM_IDLEST_CKGEN ST_PERIPH_CLK_DPLL4_LOCKED



OVER!~~~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读