一步步开始一个简单裸机编程
2017-04-13 11:03
197 查看
点亮led的步骤:
1.查看原理图
查看电路中led的电路连接方式
![](https://img-blog.csdn.net/20170413093935169?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE5NjEzODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
控制gpio就可以控制led的亮灭
2.查看数据手册
因为所有的硬件和软件连接都是通过寄存器来完成的,所以对硬件的操作就是对相应的寄存器进行操作。led的对应gpio分别是GPJ0_3,GPJ0_4,GPJ0_5和pwmtout1
GPJ0的寄存器有
GPJ0CON
GPJ0DAT
GPJ0PUD上拉还是下拉 我们不设置
GPJ0DRV 休眠模式才用
GPJ0CONPDN休眠模式才用
GPJ0PUDPDN休眠模式才用
3.设置寄存器
GPJ0CON用来控制GPJ0八个io口的工作模式,此时led应选择输出模式
![](https://img-blog.csdn.net/20170413095623350?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE5NjEzODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所以GPJ0CON[3]=GPJ0CON[4]=GPJ0CON[5]=0001
所以 0xE0200240=0x00111000
GPJ0DAT 用来设置八个io端口的电压值
![](https://img-blog.csdn.net/20170413100026777?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE5NjEzODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所以 GPJ0DAT=8’b11111111表示led都灭
所以 0XE0020244=0X38
4.编写汇编代码
这是led.S汇编文件 若需要编译下载 还需要makefile文件,mkv210_image.c文件(用来制作头校验文件 用于sd卡启动),write2sd文件。
![](https://img-blog.csdn.net/20170413111425713?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE5NjEzODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所有需要的文件如下
![](https://img-blog.csdn.net/20170413105858332?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE5NjEzODU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
make结束后提取led.bin 用usb下载方式下载到地址为0xd0020010
可以看到 3个led灯已经灭了。
若需要用sd卡启动,则使用210.bin
Makefile文件如下
1.查看原理图
查看电路中led的电路连接方式
控制gpio就可以控制led的亮灭
2.查看数据手册
因为所有的硬件和软件连接都是通过寄存器来完成的,所以对硬件的操作就是对相应的寄存器进行操作。led的对应gpio分别是GPJ0_3,GPJ0_4,GPJ0_5和pwmtout1
GPJ0的寄存器有
GPJ0CON
GPJ0DAT
GPJ0PUD上拉还是下拉 我们不设置
GPJ0DRV 休眠模式才用
GPJ0CONPDN休眠模式才用
GPJ0PUDPDN休眠模式才用
3.设置寄存器
GPJ0CON用来控制GPJ0八个io口的工作模式,此时led应选择输出模式
所以GPJ0CON[3]=GPJ0CON[4]=GPJ0CON[5]=0001
所以 0xE0200240=0x00111000
GPJ0DAT 用来设置八个io端口的电压值
所以 GPJ0DAT=8’b11111111表示led都灭
所以 0XE0020244=0X38
4.编写汇编代码
这是led.S汇编文件 若需要编译下载 还需要makefile文件,mkv210_image.c文件(用来制作头校验文件 用于sd卡启动),write2sd文件。
所有需要的文件如下
make结束后提取led.bin 用usb下载方式下载到地址为0xd0020010
可以看到 3个led灯已经灭了。
若需要用sd卡启动,则使用210.bin
Makefile文件如下
相关文章推荐
- 关于Java的RMI编程的一个简单的例子
- Java持久性API(The Java Persistence API)-一个简单的实体持久性编程模型
- 为学习APUE(Unix环境高级编程)偷懒,而写的脚本,基本上相当于一个简单的工程创建脚本了
- 一个使用监听器模式实现的J2ME网络编程框架,包括一个简单的登录功能实现(含源代码)
- 【水晶易表】开始一个简单的易表
- 关于Java的RMI编程的一个简单的例子
- 回归游戏的世界,简单图形编程学习的开始
- 最简单的内核模块编程 -- 一切从这里开始
- OpenGL编程轻松入门之一个简单的例子
- jQuery 标记当前函数 开始写一个简单的插件
- 一个简单的Tcp编程练习。
- 一切都有一个简单的开始
- 深入UNIX编程:一个简单聊天室的两种实现 (fcntl 和 select)
- Socket 同步编程的一个简单例子,适合初学者
- C#多线程编程---一个简单的聊天程序(Server)
- 一个使用监听器模式实现的J2ME网络编程框架,包括一个简单的登录功能实现(含源代码)
- linux socke编程实例:一个简单的echo服务器程序(2)
- 一个简单的SWT程序实例及详解-Java基础-Java-编程开发
- Pro*C编程初步 + 栽在了一个非常简单的问题上
- 抽象--面向接口编程--一个简单的小设计