0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Cortex-A9 LED汇编、C语言驱动编写

电子设计 来源:电子设计 作者:电子设计 2020-12-24 18:10 次阅读

ARM系列文章合集如下:

《从0学arm合集》

0. 前言

一般我们购买一个开发板,厂家都会给出对应的电路图文件,我们可以通过搜索对应名称来查找到对应的外设。对于驱动工程师来说,我们只需要知道外设与SOC交互的一些数据线和信号线即可。

用主控芯片控制这些外设的一般步骤:

电路原理图,弄明白主控芯片和外设是怎么连接的,对于驱动工程师来说,主要是看外设的一些clk、数据引脚、控制引脚是如何连接的;外设一般都会连接到SOC的1个或者多个控制器上,比如i2c、spi、gpio等,有的是数据线有的是信号线,中断线等;根据电路连接和需求对主控芯片进行设置,往往对外设的设置都是通过寄存器操作实现;书写相应代码,实现功能,不同类型的外设,代码结构也不尽相同,比如按键,我们既可以通过轮询方式读取按键信息,也可以通过中断方式来读取。

下面我们就以华清远见的fs4412开发板为例来看如何编写led的裸机程序。SOC exynos 4412 datahseet 下载地址:

https://download.csdn.net/download/daocaokafei/12533438

一、LED灯电路图

首先看下led电路图:

LED电路图该板子有4个LED,是发光二极管,有电流是为蓝色;led都接了上拉电阻;三极管的基极接了SOC的某个GPIO引脚;比如GPX1_0,当该引脚为高电平是,三极管pn结导通,于是LED3两侧就有了电势差,LED3被点亮,如果该引脚为低电平,pn结截止,LED3两侧就没有了电势差,LED3熄灭。

下面是CPU核访问GPIO控制器的数据通路:

AHB:高速总线APB Bridge:APB总线桥APB:外设总线,低速总线GPIO挂载在APB总线上

GPIO 与 SOC

由上图可知,cpu要访问GPIO的寄存器需要经过的路径。

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22627

    浏览量

    647549
  • 电力电子
    +关注

    关注

    27

    文章

    508

    浏览量

    48603
  • C语言
    +关注

    关注

    180

    文章

    7552

    浏览量

    132008
收藏 人收藏

    评论

    相关推荐

    C语言能够实现单片机功能,为什么还要使用汇编呢?

    C语言能够实现单片机功能,为什么还要使用汇编呢? C语言是一种高级编程语言,它具有跨平台、可移植
    的头像 发表于 01-15 14:59 447次阅读

    c语言hello world程序编写

    语言"Hello world"程序的编写过程,并提供一些实用技巧和注意事项。 首先,我们需要一个C语言开发环境来编写和运行代码。在这里,我们
    的头像 发表于 11-26 09:23 1515次阅读

    c语言编写的源程序可以直接运行吗

    C语言编写的源程序不能直接运行,必须经过一系列的编译链接过程才能生成可执行文件,然后才能运行。 C语言是一种高级编程
    的头像 发表于 11-26 09:03 4073次阅读

    介绍一个用C语言编写的硬件外设访问库

    今天要介绍的开源软件叫 c-periphery,一个用 C 语言编写的硬件外设访问库。
    的头像 发表于 10-26 10:36 702次阅读
    介绍一个用<b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>编写</b>的硬件外设访问库

    如何用c语言编写arduino虚拟串口的驱动程序?

    c语言编写arduino虚拟串口的驱动程序
    发表于 10-25 08:29

    火遍童年的FC游戏是使用什么语言编写

    那么FC游戏是用什么语言编写的呢?实际上,FC游戏的开发使用了一种名为汇编语言语言汇编语言是一种低级
    的头像 发表于 10-20 16:46 760次阅读
    火遍童年的FC游戏是使用什么<b class='flag-5'>语言</b><b class='flag-5'>编写</b>的

    Cortex-A9技术参考手册

    指令、16位和32位Thumb指令以及8位Java字节码。 图1-1显示了带有PL390中断控制器和L2C-310二级缓存控制器的设计中的Cortex-A9单处理器
    发表于 08-17 06:53

    ARM汇编语言入门

    语言,只比处理器的母语机器代码高出一步。 用汇编语言编写整个程序,即使是相对简单的程序,也很复杂。这就是为什么大多数人使用CC++等高级
    发表于 08-08 07:28

    双核Cortex-A7 rt-thread移植笔记

    选择参考bsp目录下qemu-vexpress-a9的代码,因为cortex-A9体和cortex-A7差异不大,而且这个bsp默认开启了SMP,对移植有一定的价值。
    的头像 发表于 08-03 15:17 1526次阅读
    双核<b class='flag-5'>Cortex-A</b>7 rt-thread移植笔记

    ARM Cortex-A9 MPCore 测试芯片技术手册

    ARM Cortex-A9 MPCore 测试芯片技术手册
    发表于 08-02 19:07

    Cortex-A9 MPCore 技术参考手册

    Cortex-A9 MPCore技术参考手册
    发表于 08-02 18:22

    Cortex-A9处理器技术参考手册

    Cortex-A9处理器是一款高性能、低功耗的ARM宏单元,具有L1缓存子系统,可提供完整的虚拟内存功能。Cortex-A9处理器实现ARMv7-A架构,在Jazelle®状态下运行32位ARM指令、16位和32位Thumb®指
    发表于 08-02 16:29

    如何编写Arm汇编代码

    大多数开发人员使用高级语言(如CC++)编写大部分代码。然后将此高级源代码编译为在目标设备上运行的机器代码。 然而,有时编写低级
    发表于 08-02 13:01

    Cortex-A9数据处理引擎技术参考手册

    Cortex-A9数据处理引擎技术参考手册
    发表于 08-02 11:37

    简单聊聊C语言的执行步骤

    我们初学C语言时老师肯定讲过C语言的执行过程:预处理——编译——汇编——链接。
    发表于 07-31 11:28 849次阅读
    简单聊聊<b class='flag-5'>C</b><b class='flag-5'>语言</b>的执行步骤