目录
初识开发板:
核心板:三星exynos4412猎户座系统芯片;CPU主频 1.4GHZ,基于ARM-cortex A9;四核处理器,同时处理四个进程;内部IROM:内部集成的一个存储的 64k;内部IRAM:256k;外部扩充ROM:4G存储空间,RAM:1G的内存空间。
底板:蜂鸣器:1个;UART口:3个;usb:2个;网口:1个;拨码开关:2个(左边控制电源,右边控制启动位置);IIC:4套;COM:4个;key:4个。
1裸机启动流程:
个扇区的大小是512B:
1 reserved:BL0三星写好的,我们不能操作的,不需要自己烧录;
详细步骤如下:
1:失能看门狗 防止硬件复位
2:关闭中断和内存保护单元
3:刷新高速缓冲区
4:是否让cpu进入空闲
5:初始化栈
6:初始化变量
7:注册函数指针
8:获取复位状态
9:设置时钟
10:判断启动方式
11:根据判断的启动方式:去对应的存储介质去下载bl的代码
12:下载并校验bl1代码
13:运行bl1:下载并运行bl1
2 BL1:E4412_N.bl1.bin 三星提供好的 需要自己烧录
1:初始化IRQ和SVC模式的栈
2:判断是否为低功耗
3:选择启动方式 下载BL2
4:判断是否为从睡眠模式唤醒
5:判断是否为安全模式
6:校验BL2
7:执行BL2:下载并运行BL2
3 BL2:可以自己定义
详细流程:
1:初始化IRQ和SVC模式的栈
2:设置时钟
3:初始化内存
4:判断是否为低功耗唤醒
5:判断是否为睡眠唤醒
6:选择启动方式
7:判断是否为安全模式
8:校验
9:启动os
2烧录代码命令
1、将sd卡插入电脑,被虚拟机识别
2、烧录bl1:
3、烧录bl2:
3交叉编译工具
不同架构的程序不能通用
交叉编译工具安装过程
1:安装兼容库:
2:将arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz随便放个目录
3:解压这个文件到根目录:
4: 将交叉编译工具放到环境变量里,把这样一句话,添加到/etc/profile文件最下边
5:生效配置文件:
6: 重启虚拟机:
7:检验交叉编译工具是否正常:
4编译点亮led灯的代码
1:编译led只编译不链接:
2:指定内存中的0x02023400这个地址为这个程序的启动位置
3:将test.elf转换成二级制的程序:
4:在可执行程序的最后加上偶校验
1)生成加偶校验的工具:
2)对test.bin加上偶校验:
5:烧录BL2: