ARM-FS6818-点亮LED灯

news2024/12/23 19:13:17

点亮LED灯

1.开发板介绍

2.cpu控制硬件原理

六大指令里边,只有内存访问指令能访问cpu之外的内容。那cpu如何控制硬件?

*load/store指令-->操作4G内存

任何一个芯片都有一个地址映射表。告诉地址空间是如何映射的,便于我们找到对应的硬件地址。

我们的SOC型号是S5P6818,对应的芯片用户手册为:S5P6818X 用户手册V0.00,其中一章是:Memory map或Memory Controller 中的一张表中可以看地址隐射关系。

硬件控制原理:

 CPU不能直接控制硬件,硬件是由其对应的控制器(寄存器)来控制的

 每个控制器(寄存器)都会映射到CPU寻址范围内的一段空间

CPU通过对控制器(寄存器)的读和写实现对硬件间接的控制

 CPU间接控制硬件。

3.本地开发和交叉开发

本地开发:本地编写代码,本地编译代码,本地运行代码

交叉开发:本地编写代码,本地编译代码,开发板运行代码

PC中Linux下,程序也能执行,但不是仿真。他是真正的运行。但你移植到ARM平台就不一定能执行,需要转化代码的指令。这个转换过程你可以当成是交叉编译。

4.点灯实验

分析电路图

  1、分析电路图的思路:从外设(地板)---》SOC(核心板)分析 

  2、 分析LED

  3、 在电路板上找到led灯的位置

     LED灯旁边会有白色的字,此白字为丝印,LED灯旁边的字,是led灯的编号

    打开底板的原理图,在原理图上搜索led灯编号(RGB)

  4、分析led的电路图

   共阳三色二极管:三个二极管的,正极接到一起

   RGB_R/RGB_G/RGB_B 表示网络标号

  5、网络标号名字相同表示具有相同的,电气连接属性,反应到电路板上,他们通过导线连接到一起 

  6、根据网络标号到核心板原理图,找到soc哪个引脚驱动着LED灯

控制思想

 工作寄存器:R0-R15,cpsr,spsr,由ARM公司提供,没有地址

 控制寄存器:就是内存的一块空间,具有地址,由芯片厂家提供。寄存器是在GPIO章节被使用,所以看芯片手册的时候看GPIO章节,里面一定有相关寄存器的使用和功能实现。

我们只需要向控制寄存器中写值或者读值,就可以让我们处理器完成一定的功能。这也就是我们软件编程控制硬件的思想。

读懂芯片手册

概述:简介->特点->框图

机械尺寸->IO功能描述表

系统引导:概述->功能描述->内部引导->外部引导

 1、GPIOxOUT:控制引脚输出高低电平

 2、RED_LED--->GPIOA28

 3、GPIOAOUT ---> 0xC001A000

 4、GPIOA28输出高电平:

       GPIOAOUT[28] <--写-- 1

 5、GPIOA28输出低电平:

       GPIOAOUT[28] <--写-- 0

 6、GPIOxOUTENB:控制引脚的输入输出模式

       GPIOAOUTENB ---> 0xC001A004

7、 设置GPIOA28引脚为输出模式:

       GPIOAOUTENB[28] <--写-- 1

8、GPIOxALTFN:控制引脚功能的选择

       GPIOAALTFN1 ---> 0xC001A024

 9、设置GPIOA28引脚为GPIO功能:

        GPIOAALTFN1[25:24] <--写-- 0b00

 00 = ALT Function0 

 01 = ALT Function1 

 10 = ALT Function2 

 11 = ALT Function3 

        GPIO引脚功能的选择:每两位控制一个GPIO引脚,

编写程序

汇编

.text  @代码段
.global _start @将_start声明成一个全局的符号,其他.s文件也可以引用
_start: @汇编的入口   
 /*
	实验步骤:
	  1)分析电路原理图,得出LED的控制方式->高电平亮,低电平灭
	  2)分析电路原理图,得出LED与SOC的连接关系->GPIOA28
	  3)分析芯片手册,找到对应的寄存器将GPIOA28设置成GPIO功能->GPIOAALTFN1(0XC001A024)
	  4)分析芯片手册,找到对应的寄存器将GPIOA28设置成OUTPUT功能->GPIOAOUTENB(0XC001A004)
	  5)分析芯片手册,找到对应的寄存器将GPIOA28设置输出高低电平->GPIOAOUT(0XC001A000)
 */
/*
   地址:0xc001A024 数据:0x00000000
   地址:0xc001A004 数据:0x10000000
   地址:0xc001a000 数据:0x10000000/0x00000000
   GPIOAOUTENB
   地址:0xc001a000 数据:0x10000000/0x00000000
*/
@设置GPIOA28为GPIO功能
 LDR R1,=0x00000000
 lDR R2,=0XC001A024
 STR R1,[R2]

@设置GPIOA28为OUTPUT功能
 LDR R1,=0x10000000
 lDR R2,=0XC001A004
 STR R1,[R2]
@设置GPIOA28为高电平
 LDR R1,=0x00000000
 lDR R2,=0XC001A000
 STR R1,[R2]
stop:
    B stop
.end @汇编的结束

下载调试程序

 1、拷贝.bin文件到windows中

 2、开发板和电脑进行硬件连接

    串口线的USB端插到电脑的USB口

    串口线的串口端插到开发板的UART0端口上

     开发板插上电源

 3、配置windows超级终端

    可以查看配置超级终端的使用说明文档资料中有, 如果串口线第一次使用需要安装串口驱动,串口驱动文件在资料中

4、配置超级终端:

    在设备管理器中,查看串口线使用的那个端口号

    配置端口属性:

    波特率:115200

    数据位:8

    停止位:1

    校验位:无

    流控:无

5、开发板上电,超级终端会有打印信息

 在倒计时减到0之前按任意键,进入到FS6818#界面

 执行命令 loadb 0x43c00000 --》下载二进制文件到内存的0x43c00000

 传送--》发送文件--》选择要下载.bin文件,选择Kermit协议 --》 确定下载

 执行命令:go 0x43c00000 --》到0x43c00000位置运行代码

 如果需要重新下载代码,重复步骤4

闪灯

用汇编写C逻辑

.text
.global _start
_start:
MAIN:
 BL LED_CONFIG
LOOP:
 BL LED_ON
 BL DELAY   
 BL LED_OFF
 BL DELAY
 BL LOOP
LED_CONFIG:
 LDR R1,=0X00000000
 LDR R2,=0XC001A024
 STR R1,[R2]
 LDR R1,=0X10000000
 LDR R2,=0XC001A004
 STR R1,[R2]
 MOV PC,LR
LED_OFF:
 LDR R1,=0X00000000
 LDR R2,=0XC001A000
 STR R1,[R2]
 MOV PC,LR
LED_ON:
 LDR R1,=0X10000000
 LDR R2,=0XC001A000
 STR R1,[R2]
 MOV PC,LR
DELAY:
 LDR R1,=100000000
T: 
 SUB R1,R1,#1
 CMP R1,#0
 BNE T
 MOV PC,LR
.end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT3.5-4资源汇总,直连无梯子

什么是ChatGPT? ChatGPT&#xff0c;全称&#xff1a;聊天生成预训练转换器&#xff08;英语&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;是OpenAI开发的人工智能聊天机器人程序&#xff0c;于2022年11月推出。该程序使用基于GPT-3.5、GPT-4…

limou的C语言学习路径

0.前言 你好这里是limou3434的一篇个人博文&#xff0c;感兴趣的话您可以到我的CSDN博客上看看&#xff0c;下面我将以前学习了大概7个月的C语言学习总结给您做一个集合&#xff0c;希望能够帮助到您。 1.C语言大略 学习C前的一些基础知识 这篇文章简单过一下C语言的基础&a…

U盘移动硬盘变本地硬盘怎么办 ,移动硬盘变本地硬盘的恢复方法

这是分区逻辑损坏后最常见的表现。U盘移动硬盘变本地硬盘怎么办 &#xff0c;移动硬盘变本地硬盘的恢复方法有些用人到这种情况后首先会尝试使用Windows系统自带的硬盘修复工具chk命令进行修复&#xff0c;不过&#xff0c;这样操作并不能解决问题&#xff0c;往往会造成更严重…

UFS 2 -UFS架构简介2

UFS 2 -UFS架构简介2 1 UFS架构简介1.1 System Boot and Enumeration1.2 UFS Interconnect (UIC) Layer1.2.1 UFS Physical Layer Signals1.2.2 MIPI UniPro1.2.3 MIPI UniPro Related Attributes 1.3 UFS Transport Protocol (UTP) Layer1.3.1 Architectural Model1.3.1.1 Cli…

ChatGPT时代:数据标注会成为一种人机交互“语言”么?

标注猿的第70篇原创 一个用数据视角看AI世界的标注猿 大家好&#xff0c;我是AI数据标注猿刘吉&#xff0c;一个用数据视角看AI世界的标注猿。 从去年的10月份到现在有半年的时间没有更新了&#xff0c;去年没有更新是疫情的原因&#xff0c;今年没有更新主要有两个原因一…

微软联合OpenAI发大招了,上线Windows Copilot,速来围观~

目录 前言 Windows Copilot 问世 Bing Chat 插件功能上线 Edge 与 365 Copilot 结合 搭建你的第一个AI应用&#xff08;Azure AI Studio&#xff09; 总结 写到最后 大家好&#xff0c;我是大侠&#xff0c;AI领域的专业博主 前言 ChatGPT如今已成为炙手可热的话题&am…

面向亚裔人群的美国华人超市【Maison Solutions】申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;来自美国南加州的面向亚裔人群的美国华人超市【美生科技Maison Solutions】近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票…

软考A计划-试题模拟含答案解析-卷十四

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

ipad触控笔是哪几款?一般电容笔和Apple pencil区别

和苹果Pencil最大的区别就是&#xff0c;电容笔没具备重力压感&#xff0c;只有一种倾斜的压感。如果你不经常画画&#xff0c;那么你可以使用一款平替电容笔。这种平替电容笔&#xff0c;不仅仅是用在办公上&#xff0c;还能用来做笔记和练习。更何况&#xff0c;现在苹果一款…

2023苹果电脑专用下载工具Folx5.27.13991

Mac 上免费的网络下载管理器 Folx Mac 下载器有一个支持 Retina 显示的现代界面。提供独特的系统排序、存储下载内容与预览下载文件。Folx 的 PRO 版是优秀的 BT 查找工具 - 您无需在网络浏览器中打开多个种子追踪器来查找您需要的内容。 虽然苹果系统比较封闭&#xff0c;如果…

蔚来Java实习面经

目录 1.解释一下MySQL中脏读、不可重复读、幻读2.索引失效的场景有哪些&#xff1f;3.Explain执行计划用过吗4.Type字段有哪一些5.binlog和redolog的区别6.Redis基本数据类型7.有序集合的底层数据结构使用的是&#xff1f;8.跳表插入数据的过程能描述一下吗9.线程池&#xff0c…

两个直线/线段的交点 - golang

问题&#xff0c;求上图中线段AB 和线段CD的交点P的坐标 根据《算法艺术与信息学竞赛》&#xff0c;公式如下 原理&#xff1a; 利用叉积求得点P分线段DC的比&#xff0c;然后利用高中学习的定比分点坐标公式求得分点P的坐标 要注意的是 若判断是两条线段&#xff0c;需先判…

GPT到底有多聪明?附上一份GPT研究报告!(十七)

转载自 AI 源起 GPT的出现&#xff0c;不得不说是人类整个科技发展史上的里程碑。那么你知道GPT到底有多聪明吗&#xff1f;它的边界在哪&#xff1f;我们这个系列将为您着重阐述这一点。 人的专长、工作和经济 GPT-4在一系列任务和领域中的卓越表现将挑战关于人类和机器在…

合肥工业大学嵌入式系统原理实验报告

✅作者简介&#xff1a;CSDN内容合伙人、信息安全专业在校大学生&#x1f3c6; &#x1f525;系列专栏 &#xff1a; &#x1f4c3;新人博主 &#xff1a;欢迎点赞收藏关注&#xff0c;会回访&#xff01; &#x1f4ac;舞台再大&#xff0c;你不上台&#xff0c;永远是个观众。…

Hive库表基本操作

Hive基本操作-库、表 规则语法 大小写规则: 1. hive的数据库名、表名都不区分大小写 2. 建议关键字大写 复制代码 命名规则&#xff1a; 1. 名字不能使用数字开头 2. 不能使用关键字 3. 尽量不使用特殊符号 复制代码 库操作语法 创建数据库 创建数据库的本质就是在hive…

基于UNnet(backbone=resnet34) 对 PASCAL VOC 的分割

目录 1. 介绍 2. tools 代码文件夹 2.1 get_palette 2.2 transform 3. train 部分 4. 结果展示 1. 介绍 本文使用resnet 34作为backbone代替传统unet的 vgg&#xff0c;实现对PASCAL VOC的分割 训练了两百个epoch后&#xff0c;mean iou到达了0.4左右&#xff0c;没…

如何管理银行多网点监控?用这方法就够了!

随着科技进步和生活水平的不断提高&#xff0c;人们对于餐饮消费的需求也逐渐变得多样化和个性化。 高校食堂现状分析 01.信息化水平低&#xff0c;学校管理难&#xff0c;无法精准就餐&#xff1b; 02用户满意度低&#xff0c;学生取餐环节效率低&#xff1b; 03.管理效率低…

音视频入门

1 音视频核心知识 1.1 视频录制原理 1.2 视频&#xff08;音频视频&#xff09;播放原理 2 图像基础概念 2.1 像素 2.2 分辨率 隔行扫描 逐行扫描 2.3 位深 RGB 通常每个通道用8bit表示 每个通道位深越大&#xff0c;能够表示的颜色值就越大 2.4 帧率 帧率越高&#xff…

Web的基本漏洞--CSRF漏洞

目录 一、CSRF漏洞介绍 1.CSRF漏洞原理 2.CSRF漏洞的类型 3.漏洞识别 4.漏洞攻击 5.CSRF漏洞的危害 6.CSRF漏洞防御 7.CSRF和XSS的区别 一、CSRF漏洞介绍 1.CSRF漏洞原理 CSRF&#xff08;cross site request forgery&#xff09;是指跨站请求伪造,是指利用受害者尚未…

智慧工厂~经典开源项目数字孪生智慧工厂——开源工程及源码

以领先的数字孪生技术为基础&#xff0c;全面打造智慧工厂。现有云南某大型汽车加工厂工程和源码免费赠送&#xff01; 项目介绍 智慧工厂基于数字孪生技术创建了一个真实的三维模型场景。通过对传感器和机器的数据采集、分析处理&#xff0c;实时监控各生产环节&#xff0c;优…