一 开发环境:

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驱动(汇编)相关推荐

  1. Linux嵌入式驱动开发07——GPIO驱动过程记录(飞凌开发板)

    文章目录 全系列传送门 1. 在/arch/arm/boot/dts/imx6q-pinfunc.h查找 2. 在设备树配置文件中添加设备节点定义以及其引脚定义 3. 修改设备树文件添加配置 4. d ...

  2. 字符设备驱动基础篇5——驱动如何操控硬件(动静态映射操作LED)

    以下内容源于朱有鹏嵌入式课程的学习,,如有侵权,请告知删除. 参考资料:http://www.cnblogs.com/biaohc/p/6575074.html 这里的映射,是指物理地址和虚拟地址的对 ...

  3. 【WinCE】流设备驱动简介及GPIO驱动的实现

    流设备驱动实际上就是导出标准的流接口函数的驱动,这是文档上面的定义.在WinCE中,所有的流设备都导出流设备接口,这样WinCE中的Device Manager可以加载和管理这些流设备驱动.  流设备 ...

  4. WinCE流设备驱动简介及GPIO驱动的实现

    作者:ARM-WinCE 流设备驱动实际上就是导出标准的流接口函数的驱动,这是文档上面的定义.在WinCE中,所有的流设备都导出流设备接口,这样WinCE中的Device Manager可以加载和管理 ...

  5. Linux摄像头驱动第一篇之虚拟摄像头驱动vivi.c

    本文学习自韦东山老师的摄像头驱动模块 目录 一 摄像头驱动程序学习切入点以及V4L2模型概览 二 简析虚拟视频驱动 VIVI.C 2.1 初始化.设置.注册过程 2.2 简析vivi.c的open,r ...

  6. 第一篇 windows驱动之WinRing0.sys的开发及使用(电脑温度监控软件开发)

    简介   从鲁大师的温度监控谈起,现代的CPU.GPU等芯片一般都具有温度监控的功能,比如我们可能会遇到的电脑散热不好导致系统直接关机黑屏,就是cpu检测到当前温度高于额定温度执行的操作.   鲁大师 ...

  7. linux设备驱动第一篇:设备驱动程序简介

    为什么80%的码农都做不了架构师?>>>    首先,我们知道驱动是内核的一部分,那么驱动在内核中到底扮演了什么角色呢? 设备驱动程序在内核中的角色:他们是一个个独立的"黑 ...

  8. LINUX驱动开发(二)GPIO驱动框架

    1. 驱动框架 pinctrl子系统+gpio子系统+设备树+platform总线. pinctrl子系统重点在设置引脚复用,gpio子系统用于初始化引脚. Linxu提供总线-设备-驱动模型,用于将 ...

  9. 字符设备驱动基础篇0——驱动开发初体验

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 参考资料:http://www.cnblogs.com/biaohc/p/6575074.html 1.驱动开发的准备工作 (1)内核源码树 ...

最新文章

  1. python全栈学习--day40()
  2. jQuery随笔1-CDN加载
  3. [笔记]Linux NTP命令 (ESX适用)
  4. Python--JSON基础
  5. quickServer介绍
  6. 基于selenium的钓鱼工具:关于ReelPhish神器的使用
  7. c web mysql数据库_C语言操作MySQL数据库
  8. Leetcode 111.二叉树的最小深度
  9. BUCK降压电路和BOOST升压电路
  10. win7升级Internet Explorer 11 先决条件更新
  11. Java中super()的用法。主类和子类的继承关系。(2)
  12. WebService测试工具,提供下载链接
  13. 计算机专业网络实训室,计算机专业实训室建设方案.doc
  14. 三极管工作原理_PNP型三极管基础知识解析
  15. vue项目中引入vuex------初试
  16. python 以图搜图1688_python 以图搜图
  17. 看完不会你揍我!!Pytorch利用文本数据建立自己的数据集- Dataset Dataloader详解 附案例
  18. neon浮点运算_ARM Linux Kernel浮点运算(软浮点、硬浮点)
  19. 去掉Nero 8刻录时激活三方专利组件的提示框
  20. 新开班全栈Linux运维-Linux云计算运维与高级架构班课程 全新自动化运维必学课程

热门文章

  1. ntc全国计算机应用水平考试,ntc证书含金量怎么样
  2. 爱好就是一切,灵感源于内在世界,能力取决于知识渊博,魄力在于性格,
  3. html字体间距标签,css中字体间距怎么调?
  4. JS——实现简单的随机3D骰子
  5. mysql连接失败10061_解决Mysql连接10061错误问题
  6. [python]中 np.int64解释
  7. 古币杂谈:康熙满汉~同福临东江
  8. php通过curl发送xml数据,并获取XML
  9. LaTeX初学者模板 控制纸张大小
  10. PostgreSQL returning子句