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
    +关注

    关注

    243

    文章

    24455

    浏览量

    687899
  • 电力电子
    +关注

    关注

    31

    文章

    671

    浏览量

    50708
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144719
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么单片机还在用C语言编程?

    说起单片机我们就会想到C语言,单片机为什么还在用C语言编程?现在有很多很好用的高级语言,如VC、PYTHON、PHP等等,为什么这些
    发表于 11-28 07:37

    汇编语言还有必要学习吗

    1、嵌入式操作系统需要汇编语言 2、实时性要求非常高的地方,需要汇编语言,比如FFT算法。 3、汇编语言做运算那叫一个痛苦,下面是一段双字节乘法,浮点数就更难搞
    的头像 发表于 11-25 11:46 473次阅读
    <b class='flag-5'>汇编语言</b>还有必要学习吗

    汇编语言的起源

    一、汇编语言是什么? 我们知道,CPU 只负责计算,本身不具备智能。你输入一条指令(instruction),它就运行一次,然后停下来,等待下一条指令。 这些指令都是二进制的,称为操作码
    发表于 11-20 07:19

    C语言和单片机C语言有什么差异

    的目标代码短、运行速度高、存储空间小、符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言
    发表于 11-14 07:55

    1.5A 单闪 LED 驱动器 skyworksinc

    电子发烧友网为你提供()1.5A 单闪 LED 驱动器相关产品参数、数据手册,更有1.5A 单闪 LED
    发表于 07-25 18:29
    1.5<b class='flag-5'>A</b> 单闪 <b class='flag-5'>LED</b> <b class='flag-5'>驱动</b>器 skyworksinc

    汇编语言教学中文资料

    电子发烧友网站提供《汇编语言教学中文资料.rar》资料免费下载
    发表于 06-30 15:15 7次下载

    Windows环境下32位汇编语言中文资料

    电子发烧友网站提供《Windows环境下32位汇编语言中文资料.rar》资料免费下载
    发表于 06-30 15:14 0次下载

    GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    以及收集整理好的资料,希望可以帮助用户更加简单的学习或快速移植代码进行项目开发。本文将和大家探讨一下GC9A01圆型屏幕的驱动
    的头像 发表于 04-25 11:29 1350次阅读
    GC<b class='flag-5'>9A</b>01-TFT屏幕<b class='flag-5'>驱动</b>(整理有stm32/51单片机/arduino等<b class='flag-5'>驱动</b>代码)

    迅为RK3568开发板helloworld 驱动实验-驱动编写

    在学习 C 语言或者其他语言的时候,我们通常是打印一句“helloworld”来开启编程世界的大门。学习驱动程序编程亦可以如此,使用 helloworld 作为我们的第一个
    发表于 04-01 15:20

    如何在 树莓派 上编写和运行 C 语言程序?

    在本教程中,我将讨论C编程语言是什么,C编程的用途,以及如何在RaspberryPi上编写和运行C程序。本文的目的是为您介绍在Raspber
    的头像 发表于 03-25 09:28 960次阅读
    如何在 树莓派 上<b class='flag-5'>编写</b>和运行 <b class='flag-5'>C</b> <b class='flag-5'>语言</b>程序?

    零基础入门:如何在树莓派上编写和运行Python程序?

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用比汇编C或Java等语言更少的代码行。Python编程语言最初实际上是作为Linu
    的头像 发表于 03-25 09:27 1581次阅读
    零基础入门:如何在树莓派上<b class='flag-5'>编写</b>和运行Python程序?

    DS90C365A怎么编写程序?

    这个时序图 是 DS90C365A数据手册里的一个时序,该芯片是用作 TTL电平 转 LVDS,驱动液晶屏。 现在在做驱动编程 问题:看不懂时序,不知道怎么编写程序,请路过的大侠帮
    发表于 01-16 08:16

    EE-134:为SHARC系列编写C兼容汇编代码中断处理程序

    电子发烧友网站提供《EE-134:为SHARC系列编写C兼容汇编代码中断处理程序.pdf》资料免费下载
    发表于 01-07 13:58 0次下载
    EE-134:为SHARC系列<b class='flag-5'>编写</b><b class='flag-5'>C</b>兼容<b class='flag-5'>汇编</b>代码中断处理程序

    EE-128:C语言中的DSP:从C调用汇编类成员函数

    电子发烧友网站提供《EE-128:C语言中的DSP:从C调用汇编类成员函数.pdf》资料免费下载
    发表于 01-07 13:48 0次下载
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>语言</b>中的DSP:从<b class='flag-5'>C</b>调用<b class='flag-5'>汇编</b>类成员函数

    TMS320C6000汇编语言工具v7.4用户指南

    电子发烧友网站提供《TMS320C6000汇编语言工具v7.4用户指南.pdf》资料免费下载
    发表于 12-30 16:42 3次下载
    TMS320<b class='flag-5'>C</b>6000<b class='flag-5'>汇编语言</b>工具v7.4用户指南