s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)
一 开发环境:
1.ubuntu
2.JZ2440开发板
二 硬件部分
JZ2440开发板上将GPF4-7四个引脚外接LED,从电路图可以得知,IO口为低电平时LED灯亮。
查询s3c2440 数据数据手册,GPF引脚寄存器地址如下:
三 软件部分:
led.s
.text
.global _start
_start:ldr r0 ,= 0x53000000 @WATCHDOG ADDmov r1 ,#0x0str r1 ,[r0] @r1 的数据写入r0 ldr r0 ,=0x56000050 @GPFCONmov r1 ,#0x5500 str r1 ,[r0] @设置GPF4-7为输出add r0 ,r0,4 @GPFDATmov r1 ,#0x0str r1 ,[r0]
loop:b loop
Makefile
CC=arm-linux-gcc
LD=arm-linux-ld
led.bin:led.o$(LD) -Ttext 0x0000000 -g led.o -o led_elfarm-linux-objcopy -O binary -S led_elf led.bin arm-linux-objdump -D -m arm led_elf > led.dis
led.o:led.s$(CC) -c -g -o led.o led.s
clean:rm -f led.bin led_elf led.dis
在虚拟机下输入mak,得到led.bin文件
四 烧录:
我是使用BootLoader烧写nandflash
1.tftp下载led.bin到30000000。
tftp 30000000 led.bin
2.擦除nandflash bootloader分区(韦老师提供的BootLoader中的分区也就是nandflash的前256k内存)
nand erase bootloader
3.写入nandflash
nand write 30000000 bootloader
s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)相关推荐
- Linux嵌入式驱动开发07——GPIO驱动过程记录(飞凌开发板)
文章目录 全系列传送门 1. 在/arch/arm/boot/dts/imx6q-pinfunc.h查找 2. 在设备树配置文件中添加设备节点定义以及其引脚定义 3. 修改设备树文件添加配置 4. d ...
- 字符设备驱动基础篇5——驱动如何操控硬件(动静态映射操作LED)
以下内容源于朱有鹏嵌入式课程的学习,,如有侵权,请告知删除. 参考资料:http://www.cnblogs.com/biaohc/p/6575074.html 这里的映射,是指物理地址和虚拟地址的对 ...
- 【WinCE】流设备驱动简介及GPIO驱动的实现
流设备驱动实际上就是导出标准的流接口函数的驱动,这是文档上面的定义.在WinCE中,所有的流设备都导出流设备接口,这样WinCE中的Device Manager可以加载和管理这些流设备驱动. 流设备 ...
- WinCE流设备驱动简介及GPIO驱动的实现
作者:ARM-WinCE 流设备驱动实际上就是导出标准的流接口函数的驱动,这是文档上面的定义.在WinCE中,所有的流设备都导出流设备接口,这样WinCE中的Device Manager可以加载和管理 ...
- Linux摄像头驱动第一篇之虚拟摄像头驱动vivi.c
本文学习自韦东山老师的摄像头驱动模块 目录 一 摄像头驱动程序学习切入点以及V4L2模型概览 二 简析虚拟视频驱动 VIVI.C 2.1 初始化.设置.注册过程 2.2 简析vivi.c的open,r ...
- 第一篇 windows驱动之WinRing0.sys的开发及使用(电脑温度监控软件开发)
简介 从鲁大师的温度监控谈起,现代的CPU.GPU等芯片一般都具有温度监控的功能,比如我们可能会遇到的电脑散热不好导致系统直接关机黑屏,就是cpu检测到当前温度高于额定温度执行的操作. 鲁大师 ...
- linux设备驱动第一篇:设备驱动程序简介
为什么80%的码农都做不了架构师?>>> 首先,我们知道驱动是内核的一部分,那么驱动在内核中到底扮演了什么角色呢? 设备驱动程序在内核中的角色:他们是一个个独立的"黑 ...
- LINUX驱动开发(二)GPIO驱动框架
1. 驱动框架 pinctrl子系统+gpio子系统+设备树+platform总线. pinctrl子系统重点在设置引脚复用,gpio子系统用于初始化引脚. Linxu提供总线-设备-驱动模型,用于将 ...
- 字符设备驱动基础篇0——驱动开发初体验
以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 参考资料:http://www.cnblogs.com/biaohc/p/6575074.html 1.驱动开发的准备工作 (1)内核源码树 ...
最新文章
- python全栈学习--day40()
- jQuery随笔1-CDN加载
- [笔记]Linux NTP命令 (ESX适用)
- Python--JSON基础
- quickServer介绍
- 基于selenium的钓鱼工具:关于ReelPhish神器的使用
- c web mysql数据库_C语言操作MySQL数据库
- Leetcode 111.二叉树的最小深度
- BUCK降压电路和BOOST升压电路
- win7升级Internet Explorer 11 先决条件更新
- Java中super()的用法。主类和子类的继承关系。(2)
- WebService测试工具,提供下载链接
- 计算机专业网络实训室,计算机专业实训室建设方案.doc
- 三极管工作原理_PNP型三极管基础知识解析
- vue项目中引入vuex------初试
- python 以图搜图1688_python 以图搜图
- 看完不会你揍我!!Pytorch利用文本数据建立自己的数据集- Dataset Dataloader详解 附案例
- neon浮点运算_ARM Linux Kernel浮点运算(软浮点、硬浮点)
- 去掉Nero 8刻录时激活三方专利组件的提示框
- 新开班全栈Linux运维-Linux云计算运维与高级架构班课程 全新自动化运维必学课程