szypf2011 发表于 2018-3-22 14:58:47

AM335x-StarterWare用户手册

最近公司用基于AM335x处理器的开发板(EAC-T335)集成调试环境对Starterware进行编译调试,目前已经在整理文档中...个人觉得还是不错的,所以想跟大家分享下!因为内容有点多,有好几张章节,所以会分次发出!
前言

以AM335x-starterware、EAC-T335为软硬件平台,介绍了LED、UART、LED等裸机程序调试方案。
开发环境:
硬件平台:EAC-T335
软件平台:starterware
仿真器:XDS200第一章节:《Starterware源码简介》

Starterware是一个非操作系统的软件开发包,包含SOC启动代码,DDR内存初始化代码,以及串口,I2C,USB,Ethernet,LCD,中断等驱动。由于没有操作系统复杂平台化功能,所以Starterware是一个结构简单的软件包。非常适合于有高实时性,但无并行性需求的应用领域,目前在工控,HMI,工业缝纫机,PLC等工业方向已经有了很多成功应用。在此链接下载starterware源码包:http://processors.wiki.ti.com/index.php/StarterWare

Starterware源码包的文件夹的布局除了考虑功能模块的划分外,也在板级支持和编译环境两个方面有所考虑,理清了这两点便于理解Starterware的架构,说明如下:

A. 按支持不同开发板划分的目录。在driver,example,platform等目录中,子目录evmAM335x, beaglebone和 evmskAM335x,分别针对AM335x的三个开发板GP EVM,BeagleBone和Starter Kit,存放着相应的板级配置代码。

B. 按不同编译环境划分的目录。Starterware把所有编译相关的工程文件放在了build/armv7a目录中,其子目录cgt_ccs, ewarm和gcc,存放分别对应CCS, IAR和GCC编译环境的工程配置文件。

从软件结构来看, Starterware有两部分组成,Bootloader和Application(应用程序),具体介绍如下:

1.1 BootLoader

BootLoader被ROMcode加载到片上SRAM中。AM335x启动后,首先运行ROM code,ROM code根据sys_boot(具体可以参考AM335x technical reference manual中的Initialization章节)的配置,从相应的存储器或者外设中得到Bootloader,并加载到片上的SRAM的起始地址处,即0x402F0400。

BootLoader中完成如下工作:

A. ARM core的配置,包括中断向量表,Cache,MMU等配置。

B. PRCM模块(具体可以参考AM335xtechnical reference manual中的PRCM章节)的配置,主要是对各PLL,power management等的配置。

C. I2C,PMIC的配置。如果使用了推荐的PMIC,首先对I2C模块配置,然后通过I2C配置PMIC。

D. UART配置,主要用于输出调试信息。

E. DDR配置。

F. 根据配置,会初始化相应的外设或者存储器。

G. 完成了上述配置后,BootLoader会相在应的外设或存储器中读取Application,并加载到DDR中。

上述工作过程和SPL很接近。但在Starterware中, BootLoader没有和u-boot一样复杂的外设工具支持,编译完成后只有34K Bytes,可以放在片上SRAM上,所以只要一级boot loader就可以完成需要的任务了。

1.2 Application

Application是 应用的主体,实现应用的逻辑,并调用相应的外设驱动。

Starterware中在example目录。其软件架构如下:


该架构很清晰,上层应用调用下层驱动或者中间件,以实现逻辑对底层模块的调用。这样的结构,在生成可执行文件时,只是链接需要的库文件,使得文件比较小,便于JTAG下载调试,同时,清晰的结构十分便于调试,查找问题所在。 Application中仅对模块的时钟进行配置,而PRCM中相关PLL,基本的电源管理功能等是在BootLoader或者编译环境的脚本中配置的,所以,Application需要在这两者准备好的环境中运行。


1.3 StarterWare 源码文件夹简介
以下列出了StarterWare 软件开发包中所包含的各种驱动文件、例子程序、库文件和其他文件以及对这
些文件相应的描述。drivers --- 包含所有外设驱动的源文件,可以编译成库的形式进行调用
examples --- 展示外设端口的示例程序

docs --- 相关的文档介绍
grlib --- 包含图形库的源文件和头文件

mmcsdlib --- MMCSD 库的源文件和头文件
nandlib --- Nand Flash 库的源文件和头文件

usblib --- USB 库的源文件和头文件
host_apps --- 执行以太网例程的源文件
build --- makefile 文件以及链接脚本的存放路径
binary --- 生成的可执行文件存放的路径。

include --- 头文件存放的路径。
platform --- 官方平台相关的源文件

system_config --- 系统配置和初始化相关的源文件
bootloader --- bootloader 的源文件

third_party --- 第三方提供的源码
tools --- 各种工具,如flash 烧写工具、SD 卡的格式化工具等
utils --- 通用源文件

第一章节简介Starterware源码,接下来还会:



会不定时的持续更新内容!!!



zhang0352505 发表于 2018-3-22 17:33:05

先收藏一个,慢慢看

our2008 发表于 2018-3-22 18:53:02

顶起!楼主继续!

soos 发表于 2018-3-22 20:20:17

顶起!楼主继续!   linux的也介绍下

机器人天空 发表于 2018-3-22 21:59:04

强力支持{:lol:}

yzhu 发表于 2018-3-22 22:29:03

辛苦了,顶起!楼主继续!

qiqirachel 发表于 2018-3-23 00:44:54

恩 ,终于有beaglebone 了

newkey 发表于 2018-3-23 09:10:51

不错,鼓励下楼主,曾经想干没有干成的事情

jsongyan 发表于 2018-3-23 12:04:06

辛苦了,顶起!楼主继续!

Excellence 发表于 2018-3-23 18:43:53

下载要注册用户,用户名忘了。

szypf2011 发表于 2018-3-28 15:01:03

谢谢大家支持,今天已经更新了!!!感谢大家的关注!

apo 发表于 2019-8-3 13:46:43

楼主继续

qq11qqviki 发表于 2019-8-3 16:09:56

先收藏一个,慢慢看
页: [1]
查看完整版本: AM335x-StarterWare用户手册