邮箱:mack123@126.com
手机:13929279671
电话:13929279671
地址:中国 广东 东莞市大朗镇蔡边村盆古庙区153号
发布时间:2021-09-25 02:55:00 人气:
概述
什么是SOC
从无到有,点亮一颗LED灯珠
1.明确任务,分析电路图
2.分析芯片手册
3.编写点亮LED程序
(1)使用汇编怎样点亮LED灯珠
(2)使用C语言怎样点亮LED灯珠
4.烧写.bin到开发板
总结
概述
不知道你是否想过,一个LED灯点亮过程的本质是什么。当你是一个小白的时候,点亮一个LED灯珠灯,IDE都会帮你做好所有的事情,你只需要点击一下编译即可。但是,当你成长到一定程度时,就需要好好想想,一个LED灯珠的点亮,其实是对单片机中背后原理机制真正的深入理解。今天我就带你,来深入理解一个LDE灯珠点亮的过程。
什么是SOC
想要深入理解LED灯的点亮,你就不得不先了解你LED灯珠所用的硬件设备了,尤其是控制它的大脑(微控制器)。一般,作为嵌入式开发者来说,使用的处理器不是一个简简单单的CPU,而是一颗SOC级别的芯片。
SOC架构简图
SOC架构简图
所以当你要操作GPIO、IIC、SPI、UART等的时候,其实只要根据手册配置相应的寄存器即可。当你可以很好的理解这个概念之后,你就可以根据厂家提供的各种技术手册操纵一切芯片厂家在设计芯片时所提供的功能。这就是,为什么会有很多公司会要求你具有看手册的能力,因为你在设计相关功能与解bug的时候,很多时候都需要参照手册来。从另一方面来说,其实一颗芯片在你拿到手之后,基本就已经决定了你能够做出什么样的产品。更多的时间,你仅仅是参照手册与领导的要求,实现相应的任务而已。正如,现在只把相关硬件、对应的芯片手册和开发板的原理图给你,那么你应该怎样点亮一颗LED灯呢?
注: 我使用的微控制器(也可以说是一颗SOC)是2440
从无到有,点亮一颗灯珠
下面具体介绍一下,点亮一颗LED灯珠的完整过程。
1.明确任务,分析电路图
任务: 点亮LED灯珠(这个是硬件中最基本的任务,我就不介绍灯亮的原理了)
分析原理图: 找到你的开发板所对应的原理图,我的原理图LED如下:
从图中我们可以看出,我的开发板是支持三个LED的(这里我们先来点亮nLED1),之后需要查看,nLED1是微控制器的哪一个引脚来控制。如下图(芯片手册参考链接):
从图中可以看出,①需要通过GPFCCN(0x56000050)寄存器的[9:8]位配置GPF4引脚的属性(例如是输入还是输出),这里应该配置为输出,即[9:8]为01,因此GPFCCN(0x56000054)的值应该为0x100。②配置GPFDAT(0x56000054)的[4]位为0(打开)\1(关闭)。
至此,我们就分析完了打开一个LED灯珠微控制器所需要做的事情。下面我们开始实现。
3.编写点亮LED程序
(1)使用汇编怎样点亮LED
在以往的开发中,使用IDE打开一个LED灯珠等,都是直接调用别人封装好的函数,但是如果你要是在一个裸板上面仅仅依靠自己,应该怎样控制LED灯珠呢?
没错,就是编写汇编程序。
汇编代码:
从图中可以看出,①需要通过GPFCCN(0x56000050)寄存器的[9:8]位配置GPF4引脚的属性(例如是输入还是输出),这里应该配置为输出,即[9:8]为01,因此GPFCCN(0x56000054)的值应该为0x100。②配置GPFDAT(0x56000054)的[4]位为0(打开)\1(关闭)。
至此,我们就分析完了打开一个LED灯珠微控制器所需要做的事情。下面我们开始实现。
相关推荐