Linux 平台下 Mini210s 裸机程序开发指南
(本手册正在不断更新中,建议您到网站下载最新版本)
版本:2012-12-10
Copyright@2012
–页
第- 1
版 权 声 明
本手册版权归属广州友善之臂计算机科技有限公司(以下简称“友善之臂”)所有, 并保留一切
权力。非经友善之臂同意(书面形式),任何单位及个人不得擅自摘录本手册部分或全部,违者我们将
追究其法律责任。
敬告:
在售开发板的手册会经常更新,请在 http://www.arm9home.net 网站查看最近更新,并下载最
新手册,不再另行通知。
–页
第- 2
更新说明:
日期
2012-12-10
说明
本手册第一次发布,任何问题请在论坛中跟贴反馈。
–页
第- 3
第一章
第一节
第二节
第三节
第二章
第一节
第二节
第三节
第四节
第三章
第一节
第二节
第四章
第一节
第二节
第三节
第四节
第五章
第一节
第二节
第三节
第四节
第六章
第一节
第二节
第三节
第四节
第七章
第一节
第二节
第三节
第四节
第八章
第一节
第二节
第三节
第四节
第九章
第一节
第二节
第三节
简 介
汇编点亮LED
关于S5PV210 的启动过程
初步认识IROM和IRAM
完整的启动序列
关闭看门狗和调用C函数
看门狗背景知识
程序相关讲解
编译代码和烧写运行
实验现象
设置栈和C语言点亮LED
查阅原理图
程序相关讲解
编译代码和烧写运行
实验现象
为什么调用C函数要设置栈
程序相关讲解
编译代码和烧写运行
实验现象
............................................................................................................................................................ 7
...................................................................................................................................................... 7
简介
...................................................................................................................................... 7
关于开发环境
.......................................................................................................................... 7
文档涉及的裸机程序
................................................................................................................................................ 9
.......................................................................................................................................... 9
...................................................................................................................................... 9
......................................................................................................................... 11
............................................................................................................................................ 12
......................................................................................................................... 13
........................................................................................................................ 13
................................................................................................................................ 13
.......................................................................................................................... 15
................................................................................................................................ 15
.................................................................................................................................... 15
........................................................................................................................ 15
............................................................................................................................................ 16
............................................................................................................................ 17
.............................................................................................................. 17
.................................................................................................................................... 18
........................................................................................................................ 20
............................................................................................................................................ 20
................................................................................................................................................ 21
...................................................................................................................................... 21
.................................................................................................................................... 21
........................................................................................................................ 21
............................................................................................................................................ 22
...................................................................................................................... 23
................................................................................................................................................ 23
.................................................................................................................................... 23
........................................................................................................................ 25
............................................................................................................................................ 25
.................................................................................................................................... 27
............................................................................................................................................ 27
.................................................................................................................................... 28
........................................................................................................................ 33
............................................................................................................................................ 34
.................................................................................................................. 35
.............................................................................................................................. 35
.................................................................................................. 35
.................................................................................................................................... 37
什么是MiniTools
如何使用MiniTools烧写裸机程序
程序相关讲解
什么是cache
程序相关讲解
编译代码和烧写运行
实验现象
使用MiniTools烧写裸机程序
控制icache
重定位代码到IRAM+0x4000
重定位代码到DRAM
重定位
程序相关讲解
编译代码和烧写运行
实验现象
关于DRAM
程序相关讲解
编译代码和烧写运行
实验现象
第- 4 –页
第十一章 查询方式检测按键
第十二章 初始化系统时钟
第十三章 串口设置之输入输出字符
第十四章 移植printf和scanf功能
第四节
第十章
第一节
第二节
第三节
第四节
第一节
第二节
第三节
第四节
第一节
第二节
第三节
第四节
第一节
第二节
第三节
第四节
第一节
第二节
第三节
第四节
第五节
第十五章
第一节
第二节
第三节
第四节
第十六章
第一节
第二节
第三节
第四节
第十七章
第一节
第二节
第三节
实验现象
控制蜂鸣器
S5PV210 UART相关说明
程序相关讲解
编译代码和烧写运行
实验现象
查阅原理图
程序相关讲解
编译代码和烧写运行
实验现象
查看原理图
程序相关讲解
编译代码和烧写运行
实验现象
S5PV210 时钟体系
程序相关讲解
编译代码和烧写运行
实验现象
............................................................................................................................................ 37
................................................................................................................................................ 38
........................................................................................................................................ 38
.................................................................................................................................... 38
........................................................................................................................ 39
............................................................................................................................................ 40
.................................................................................................................................... 41
........................................................................................................................................ 41
.................................................................................................................................... 41
........................................................................................................................ 42
............................................................................................................................................ 43
........................................................................................................................................ 44
............................................................................................................................. 44
.................................................................................................................................... 46
........................................................................................................................ 52
............................................................................................................................................ 53
........................................................................................................................ 54
.................................................................................................................... 54
.................................................................................................................................... 55
........................................................................................................................ 61
............................................................................................................................................ 62
.......................................................................................................................... 64
........................................................................................................................................ 64
............................................................................................................................................ 64
.................................................................................................................................... 64
........................................................................................................................ 66
............................................................................................................................................ 67
............................................................................................................................ 69
................................................................................................................................ 69
.................................................................................................................................... 69
........................................................................................................................ 79
............................................................................................................................................ 80
..................................................................................................................................... 81
......................................................................................................... 81
.................................................................................................................................... 81
........................................................................................................................ 86
............................................................................................................................................ 87
.................................................................................................................................................. 89
....................................................................................................................... 89
.................................................................................................................................... 89
........................................................................................................................ 93
关于S5PV210 的中断体系结构
程序相关讲解
编译代码和烧写运行
实验现象
移植的途径
移植步骤
程序相关讲解
编译代码和烧写运行
实验现象
NAND Flash的读写擦除
关于NAND Flash
程序相关讲解
编译代码和烧写运行
实验现象
S5PV210 中断体系
PWM定时器
S5PV210 的PWM定时器
程序相关讲解
编译代码和烧写运行
第- 5 –页
S5PV210 LCD控制器
程序相关讲解
编译代码和烧写运行
实验现象
第二十一章 测试ADC转换
第一节
第二节
第三节
第四节
S5PV210 的ADC
程序相关讲解
编译代码和烧写运行
实验现象
第二十二章 增加命令功能
S5PV210 的看门狗定时器
程序相关讲解
编译代码和烧写运行
实验现象
RTC读写时间
S5PV210 的RTC
程序相关讲解
编译代码和烧写运行
实验现象
LCD描点画线
............................................................................................................................................ 93
.................................................................................................................................... 95
................................................................................................................. 95
.................................................................................................................................... 95
........................................................................................................................ 98
............................................................................................................................................ 98
............................................................................................................................................ 100
................................................................................................................................. 100
.................................................................................................................................. 100
...................................................................................................................... 103
.......................................................................................................................................... 104
............................................................................................................................................ 105
........................................................................................................................ 105
.................................................................................................................................. 105
....................................................................................................................... 116
........................................................................................................................................... 117
............................................................................................................................................. 118
.................................................................................................................................. 118
................................................................................................................................... 118
...................................................................................................................... 121
.......................................................................................................................................... 121
.......................................................................................................................................... 123
.................................................................................................................................. 123
.................................................................................................................................. 123
...................................................................................................................... 124
.......................................................................................................................................... 125
..................................................................................................................................... 127
.................................................................................................................................. 127
.................................................................................................................................. 127
...................................................................................................................... 131
.......................................................................................................................................... 132
................................................................................................................................ 133
........................................................................................................................ 133
.................................................................................................................................. 133
...................................................................................................................... 133
.......................................................................................................................................... 134
关于命令功能
程序详细讲解
编译代码和烧写运行
实验现象
音频播放原理
程序详细讲解
编译代码和烧写运行
实验现象
LCD显示字符和图片
程序详细讲解
编译代码和烧写运行
实验现象
第二十三章 WM8960 音频播放
第二十四章 LCD显示字符和图片
第四节
实验现象
第十八章 看门狗定时和复位
第一节
第二节
第三节
第四节
第十九章
第一节
第二节
第三节
第四节
第二十章
第一节
第二节
第三节
第四节
第一节
第二节
第三节
第四节
第一节
第二节
第三节
第四节
第一节
第二节
第三节
第四节
第- 6 –页
第一节 简介
第一章 简 介
随着移动互联网的飞速发展,国内安卓智能手机和平台的电脑也得以迅速普及,性能优越的
Cortex-A8 CPU 主控无疑成为这些智能终端的入门之选,从国产全志 A10 到 三星 S5PV210,无不
采用了 Cortex A8 架构;当然,我们现在已经在拼”核”的浪涛之中竞逐,从双核小米到四核魅
族 MX2,纷纷“你方唱罢我登场”,但是,从嵌入式开发角度而言,这些 CPU 目前都是采用了 ARMV7
指令集;鉴于较低的性价比,采用 ARM9,ARM11 等架构 CPU 的产品已经渐渐走下了舞台。
对于很多嵌入式开发者和爱好者,特别是初学者,如何从底层开始了解和学习 Cortex A8,
绝非是一件容易的事!
为此,友善之臂的工程师,花了很多时间和心血,基于Mini210S开发板编写了这份教程,以
帮助广大嵌入式爱好者更深入了解S5PV210 的详细启动过程,同时让更多初学者能从裸机程序开
始学习Cortex A8。鉴于每个人的认知水平不同,以及我们平时的开发任务比较紧张,我们并不
提供关于该教程的任何技术支持。如果你对本教程的内容有任何疑问,可以到 arm9 之家论坛
(http://www.arm9home.net) 反馈,并和其他网友交流讨论。
需要说明的是,本教程也适用于友善之臂出品的 Tiny210/Tiny210V2 等其他型号基于 S5PV210
的开发板平台。
友善之臂将对本教程作不定期的维护和补充,请时常留意论坛的更新信息,不再另行通知。
友善之臂(http://www.arm9.net) 保留本教程的一切解释权。
第二节 关于开发环境
1) 学习前提:学习过简单的 C 语言和 ARM 汇编语言
2) 开发平台:windows xp + 虚拟机 fedora15,使用 source insight 编写代码
3) 交叉编译器 :arm-linux-gcc-4.5.1
注:交叉编译器的安装方法可参考开发板相关的用户手册。
4) 配套开发板:所有程序均在 Mini210S 上成功测试运行过,对于友善之臂其他 210 开发板,大
部分代码仍然适用。
第三节 文档涉及的裸机程序
首先前面的 2~8 章会从最基础的点亮 LED 讲起,采用从 sd 卡加载的方式,逐步讲解 S5PV210 的
启动过程以及如何重定位代码,让用户了解 S5PV210 上电后运行的每一个步骤。有了这些必要的
知识后,后面的章节我们就可以采用 USB 下载工具 MiniTools 直接将裸机程序下载到 DRAM,从而
编写功能更复杂的裸机程序。用户可以通过查看书签可以了解本文档所涉及的硬件模块,本文档
第- 7 –页
一共涉及 23 个裸机程序,并且以后将不断丰富出更多的裸机程序,也请众网友发挥各自的才智,
在本文档的基础上写出更多简单实用的裸机程序并反馈给我们。
第- 8 –页