一、硬件:基于Cortex-A8核的samsung s5pc100
二、程序调试环境:
1、USB串口转换工具驱动安装
2、超级终端工具设置
3、启动内置的BIOS (即u-boot已经烧写好的s5pc100板子)
4、下载程序
超级终端工具中输入loadb命令
选择kermit协议,程序被下载到内存的20008000位置
5、执行程序
go 20008000
三、编译环境
1、编译器:yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-
7.3.1_eabi_20111119.exe
2、make工具:yagarto-tools-20100703-setup.exe
3、cmd下面测试:
make -v 测试make命令是否可用
arm-none-eabi-gcc -v测试编译器是否可用
4、环境变量设置,我的电脑右键->属性->高级->环境变量:修改path环境变量
变量值项添加以下路径,注意结尾均有分号";"
d:\Program Files\yagarto\bin
;d:\Program Files\yagarto-tools-20100703\bin
;
5、文件格式:
s文件:汇编源文件
o文件:目标文件
elf文件:ARM标准交换文件
bin文件:ARM可执行程序
dis文件:反汇编文件
四、GPIO控制LED例程
1、原理图找到硬件连接图,找到相关信号
GPG3_0 -> led4
GPG3_1 -> led1
GPG3_2 -> led2
GPG3_3 -> led3
2、找数据手册,查看信号的控制模块
GPG3 -> GPIO Pad Control
3、GPG3寄存器说明
GPG3CON 0xe03001c0 选择管脚功能,相应的位设置为b0001则表示输
出
GPG3DAT 0xe03001c4 位对应相应管脚的状态
GPG3PUD 0xe03001c8 内部上拉下拉控制
4、编写程序
make生成目标文件.bin
通过loadb下载到开发板上运行程序 ,
查看现象
五、
volatile 修饰词
用于修饰易失性的变量,主要是寄存器的值,因为这些寄存器可能被ARM内核修改,
也可能被外设修改,所以每次要使用时必须重新读取。