AM335x裸机<一>:StartWare的使用

  AM335x这款处理器,TI官方有针对其开发对应的裸机程序,由于u-boot和kernel本质还是对寄存器和外设的操作,所以打算简单分析下自带的裸机程序,大致了解下AM335x的工作机制,这样以后开发调试u-boot和kernel会顺手很多,这里打算对裸机加载uart程序进行完整分析,因为其涉及到AM335x多方面,包括:时钟、中断、内存分布等等,这一篇会首先简单介绍下怎么使用AM335x这个裸机程序,以SD卡启动、uart程序为例。

1.安装编译器

下载arm-2009q1-161-arm-none-eabi.bin,然后运行./arm-2009q1-161-arm-none-eabi.bin -i console,如果安装过程中出错,请尝试下面链接操作https://developer.ridgerun.com/wiki/index.php/Code_Sourcery_ARM_toolchain_2009q1-203,按照操作步骤来即可

2.bootloader的编译

cd build/armv7a/gcc/am335x/sbc8600/bootloader

make clean ; make BOOT=MMCSD

编译完将产生boot_ti.bin,将其重命名为MLO后复制到SD卡

3.app的编译

cd build/armv7a/gcc/am335x/sbc8600/uart
make clean ; make

编译完将产生uart.bin,将其重命名为app后复制到SD卡

4.启动单板

将SD卡查到单板,选择启动方式为SD卡,然后看到打印

这里只是以uart为例,其他的各个程序,只需要按照第三步编译app的方式,然后复制到SD卡即可

时间: 2024-12-23 19:42:39

AM335x裸机<一>:StartWare的使用的相关文章

AM335x裸机&lt;二&gt;:StartWare的分析

这篇接着上一篇,来分析上一篇程序里面的MLO和app文件启动过程,基本涵盖到整个am335x的大部分操作,包括:时钟初始化.代码搬移.中断向量的重定位.中断的处理等.要分析程序,首先分析makefile和连接脚本lds文件,然后顺藤摸瓜,当同名函数太多时,可以考虑反汇编elf文件,进行对比判断. 0.添加Source Insight工程 创建新工程,添加所有文件,注意Source Insight添加对asm和makefile文件支持,更有利于分析 1.bootloader分析 查看build/a

AM335x裸机&lt;三&gt;:Watchdog的操作

基于第二篇,结合代码和TRM分析看门狗相关操作,直接上代码 HWREG(SOC_WDT_1_REGS + WDT_WSPR) = 0xAAAAu; while(HWREG(SOC_WDT_1_REGS + WDT_WWPS) != 0x00); HWREG(SOC_WDT_1_REGS + WDT_WSPR) = 0x5555u; while(HWREG(SOC_WDT_1_REGS + WDT_WWPS) != 0x00); 这里为什么要这么写呢?这个嘛,我也不知道.....因为TI的 TRM

am335x在ubuntu下使用StarterWare编写裸机程序并在CCS中用Jlink调试

StarterWare在AM335X上的烧录运行 步骤:1.下载安装StarterWare,我们团购的SK需要02.00.00.07版本.最近外网访问慢,我上传到论坛.2.找一张miniSD卡,不需要很大,系统只有几个M而已.3.如果你按默认路径安装,那请去C:\ti\AM335X_StarterWare_02_00_00_07\tools\sd_format下面执行TI_SDCard_boot_utility_v1_0.exe 4.在路径 C:\ti\AM335X_StarterWare_02

Am335x 下GPIO控制实例-驱动程序(转)

看了这么多的资料,现在决定上手了,下面将用两种方式来实现对GPIO 117的控制1,用直接添加到内核的方式,实现MISC的驱动(misc_register)2,用手工安装的方式,实现简单字符设备驱动(register_chrdev) 实现前提:当前所用的GPIO没有被其它设备所使用,大家可以用我前面BLOG说的方式查看GPIO的使用情况,当前我所用的GPIO本来是bluetooth的开关,需要屏蔽一个函数.不然后面的驱动申请IO都会失败.函数为Board-am335xevm.c 中的wl12xx

S5PV210-arm裸机-异常中的中断实现过程

210中的异常中的中断实现过程: 首先异常分为很多种,异常中包含了中断异常,有一个东西叫做异常向量表,在异常向量表中有很多相应异常的的地址.异常向量表中的所有异常中断的地址是不会变化的.地址都是固定的,但这些地址都是一个基于基地址的一个地址.不同的CPU中,基地址是不同的. 在210中,CPU内部给了一个发生异常时的异常向量的基地址,查阅官方资料知道,这个基地址为0XD0037400,所以我们需要自己把异常向量表中的地址加在210给的发生异常时的异常向量的基地址上.比如:reset(复位异常)在

1-1 裸机工具安装

一,交叉编译工具链的安装与测试 安装方法 1. gcc用的是arm-linux-gcc-4.3.2,对压缩包进行解压,路径设为根目录下(ubuntu需sudo) tar xzvf arm-linux-gcc-4.3.2.tar.gz -C / 修改环境变量 (针对RHEL6)         vim /root/.bashrc 添加         expert PATH=$PATH:/usr/local/arm/4.3.2/bin 保存并退出后,执行surce命令重新加载         so

嵌入式Linux裸机开发(十三)——I2C通信

嵌入式Linux裸机开发(十三)--I2C通信 一.IIC协议 1.IIC总线简介 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL.在 I2C总线上传送的一个数据字节由八位组成.总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位. IIC总线是一种串行总线,用于连接微控制器及其外围设备,具有以下特点:

嵌入式Linux裸机开发(十)——SD卡启动

嵌入式Linux裸机开发(十)--SD卡启动 存储设备分类: 磁存储设备:软盘.硬盘.光盘.CD.磁带 Flash:NandFlash.NorFlash 缺点:时序复杂,无坏块处理机制,接口不统一 NandFlash:MLC(可靠性差,容量大).SLC(可靠性高.容量小) 扩展卡式Flash:SD卡.MMC卡.MicroSD(TF卡) 内部为NnadFlash存储颗粒,外部封装了接口,接口标准统一.通用. 缺点:频繁使用导致卡槽接触不可靠 iNand.MoviNand.eSSD: 内部为Nand

嵌入式Linux裸机开发(七)——UART串口通信

嵌入式Linux裸机开发(七)--UART串口通信 一.UART串口通信简介 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER, 它用来传输串行数据.发送数据时, CPU 将并行数据写入UART,UAR按照一定的格式在一根电线上串 行发出:接收数据时, UART检测另一根电线的信号,将串行收集在缓冲区中, CPU 即可读取 UART 获得这些数据. 在 S5PV210中, UART提供了 4 对独立的异步串口I/O端口,