玩转ARM基本功(ARM11)

发布者:心动代码最新更新时间:2021-06-11 来源: eefocus关键字:ARM  ARM11 手机看文章 扫描二维码
随时随地手机看文章

简介:我是稀里糊涂的走上了嵌入式开发的道路,回想起来,多亏了身边的几位朋友,是在与他们的闲侃中慢慢的走上了这条道路:从最早的电路设计,PCB打板,电路调试,模拟仿真,单片机开发到后来的ARM开发,回想起来,心里也是诚惶诚恐,如履薄冰。


我开始做电子是用的AVR单片机,从I/O、按键…到内存、外设玩了一通。工作之后,才开始玩ARM。在项目中逐渐对ARM开发有了一些感悟。


学习ARM有两个目的,看你是那种:1、长见识,顺便玩玩;2、工作需要,从事ARM开发。这就要分开对待了。


如果是长见识,随便玩玩,为日后的工作做准备,那么就应该挑选市场上很成熟的ARM7、ARM9等资料比较多,玩的人比较多,出现问题容易解决;如果是工作需要,就没有这么多选择,必须按照功能要求,开始征服特定的片子。


不管哪种目的,学习起来步骤我感觉差不多,先裸板,后上操作系统:

1.gif

之所以这么安排,是因为听了很多大牛的建议和意见。正所谓“万丈高楼平地起”,基础很重要。在上操作系统之前,一定要对底层代码特别是裸板程序有一定的认识。这样,对于操作系统中涉及底层的问题就会少很多。


现在以我学习ARM11(s3c6410-1176JZF)的经历介绍写一些基本功。


首先:要有一定的电子基础。


这不是废话吗,既然玩ARM当然都是懂电子的呀。其实不然!电子基础可深可浅,怎么是个头?会IC放大器,搭建信号处理电路,这是信号处理中的基本功。对于ARM开发来说,我感觉重点在信号走线、滤波、稳压和保持片子性能稳定上(分析一个ARM板子就会明白这些道理)。


我谈下我的见解:明白ARM板子中除集成IC之外的元器件的作用,最常见的是电容作用、驱动LED呀、扬声器呀、串口连接、存储器连接、LCD屏幕连接等等。看到串口,想起怎么连接;看到按键,想起怎么识别……基本上在硬件上可以将整个系统连接起来。


其次,有一定的英文阅读能力。


我在开发的时候以Linux应用完全开发手册、6410手册和ARM1176jzf内核手册为基础。这三个文档一个中文,两个英文,页数总和有2500页。如果没有耐心,想尽快完成开发,这无异于缘木求鱼。6410的手册是对ARM11芯片的介绍和寄存器的总体介绍:包括GPIO设置,相机接口、Nandflash控制器、DRAM控制器等。1176jzf是对1176jzf处理器的设置的介绍。2.jpg


对于简单的GPIO设置,我们可以查阅6410的GPIO章节,


3.jpg


从中可以看出各组管脚的功能:各组管脚是混合复用(除了GPI和GPJ两组),依据单片机知识,如果是管脚复用,必须通过相应寄存器设置才能达到相应要求,这时,我们需要看GPIO的寄存器设置章节:


对于GPA组,

4.jpg


可以看出端口A具有读写功能,并且有相应的地址,从存储器映射图中可以看出,端口A可以通过配置相应寄存器(也就是相应的地址)为合适的数值,就能完成相应的操作。


5.gif


对于GPA0管脚来说,通过配置其为0000或者0001或者0010将其定义为输入、输出或者串口模式,具体操作及分如下:


6.jpg


通过三个操作,可以讲GPA0设置为输出功能,如果外界LED,可以实现LED灯的控制。


此外,还有数据寄存器,上拉控制寄存器,配置休眠和上拉休眠等寄存器,其操作原理一样,将相应的寄存器地址放入一寄存器,写入数值,即完成相应配置。


第三、要有一点汇编和c语言的基础。


为什么这么说呢,首先看下配置I/O口为简单输入输出的ARM的启动代码:


7.gif


在6410的启动代码中,需要以汇编语言的形式设置、配置寄存器,现在将这部分进行简单的分析:


在写裸板程序的起始,需以 .globl 为开始,通过


8.jpg


将外设地址映射到外设地址,通过


9.jpg


将存储器大小设置为256M,具体怎么实现的呢,查看1176jzf手册:


10.jpg


11.jpg


有此可见,6410手册和1176jzf手册对于裸板程序是一利器。


第四、举一反三,融会贯通,利用网络。


一个6410手册有1378页,一个1176jzf有972页,看完是一项可望不可及的任务,因此善于举一反三,融会贯通是必须的。另外还需要有Google大神的帮助。在开发过程中,如果碰到新功能,新接口没有使用过,这时,Google大神就可以发挥其大神的作用,带领你完成任务。


如在写堆栈操作中,需要将各寄存器的数值进行保存,需要使用stmdb指令,如果不熟悉,可以用Google大神进行帮助。


通过介绍,可以明白具体的操作。


虽然ARM更新速度很快,但是也不是出来一个新产品就让我们从头开始学习新技术,只要熟悉掌握了一种MCU,通过举一反三,可以将技术扩大到应有的领域。


最后借用孔老夫子的一句话“学而不思则罔,思而不写则殆”来表达嵌入式开发者——至少我是这样的心情。

关键字:ARM  ARM11 引用地址:玩转ARM基本功(ARM11)

上一篇:多路同步串口的FPGA传输实现
下一篇:ARM的中断处理 [二]

推荐阅读最新更新时间:2024-11-09 13:58

arm学习笔记六(协处理器)
协处理器是一种芯片,减轻系统微处理器的某些任务 支持多达16个协处理器,例如cp15寄存器来控制cache和存储器管理 协处理器操作指令 cdp:数据操作指令,初始化协处理器 ldc:数据加载指令,存储器到协处理器寄存器的数据传送 stc:数据存储指令,协处理寄存器到存储器的数据传送 mcr:arm处理器寄存器到协处理器寄存器的数据传送 mrc:协处理器寄存器到arm处理器寄存器的数据传送 访问cp15寄存器的指令编码格式 31 28 27 24 23 21 20 19 16 15 12 11 8 7 5 4 3 0 cond 1110 opcode_1 L crn
[单片机]
arm架构寄存器介绍
ARM处理器工作模式一共有 7 种 : USR 模式 正常用户模式,程序正常执行模式 FIQ模式(Fast Interrupt Request) 处理快速中断,支持高速数据传送或通道处理 IRQ模式 处理普通中断 SVC模式(Supervisor) 操作系统保护模式,处理软件中断swi reset ABT 中止(Abort mode){数据、指令} 处理存储器故障、实现虚拟存储器和存储器保护 UND 未定义(Undefined) 处理未定义的指令陷阱,支持硬件协处理器的软件仿真 SYS 系统模式(基本上=USR)(System) 运行特权操作系统任务 用户模式和特权模式 除了用户模
[单片机]
<font color='red'>arm</font>架构寄存器介绍
病症:arm启动后应用程序界面显示不正常
病症:病症:arm启动后应用程序界面显示不正常(左面有部分未能正常显示)也就是左面少一块区域,右面多一部, 原因:lcd显示驱动中场扫描的问题 平台:s3c2416、linux2.6、800*480lcd 解决办法: 修改lcd驱动中部分代码:内核目录下drivers/vidio/s3c_xxx.c(根据实际找适合自己的) 打开文件找到: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ
[单片机]
英国政府选择不同的半导体促进政策,不参与晶圆厂竞争
英国科技部长表示,英国半导体行业必须专注于利基制造和设计,而不是寻求挑战芯片制造领域的国际竞争对手,他承认“我们不会在南威尔士重建台积电”。 英国政府数字经济战略负责人保罗·斯卡利 (Paul Scully) 向英国《金融时报》表示,英国不会加入亚洲、欧洲和美国之间的竞赛,以建设由国家投资数十亿美元支持的先进芯片制造设施。 相反,政府 5 月份公布的国家半导体战略打算在未来 10 年仅向英国芯片公司提供 10 亿英镑。 这笔资金将集中在芯片设计等现有优势上——该领域由总部位于剑桥的 Arm 等公司主导——因为中国希望在全球行业中培养新的赢家。 他说:“为了利用我们的优势,关键在于先进的封装和设计。”他认为英国应该成为全
[半导体设计/制造]
研华坚固抗震Arm核心模块 协助打造医疗手术“黑科技”
在国家鼓励医疗器械自主创新、攻克关键“卡脖子”技术的背景下,我国超声软组织切割止血系统行业技术取得重大突破,国产化进程加快。 超声软组织切割止血系统(设备)一般由主机和附件组成。主机主要为换能器和刀头提供能量,附件包括超声换能器、超声刀头和脚踏开关。该设备通过超声刀把超声能量聚集到人体内,利用焦点处超声波热效应,在靶区形成高温,导致蛋白质变性,从而达到手术效果。 超声软组织切割止血系统应用需求 进口超声手术刀价格昂贵,且其使用不在医保的报销范围内,患者经济负担较重。在需求和政策等因素推动下,部分国内企业开始发力研发超声软组织切割止血系统,替代进口设备未来可期。 国内某医疗企业,在微创手术器械超声能量平台领域有
[医疗电子]
研华坚固抗震<font color='red'>Arm</font>核心模块 协助打造医疗手术“黑科技”
使用ARM7 LPC2148微控制器构建一个简单的机械臂
  机械臂是令人着迷的工程创造之一,看着这些东西倾斜和平移以像人类手臂一样完成复杂的事情总是令人着迷。这些机械臂常见于装配线上进行焊接、钻孔、喷漆等高强度机械工作的行业中,最近还开发了高精度的先进机械臂来执行复杂的外科手术。因此,在本教程中,让我们使用 ARM7-LPC2148 微控制器构建一个简单的机械臂,通过手动控制几个电位器来拾取和放置物体。   所需组件   3D 打印机机械臂   ARM7-LPC2148   SG-90 伺服电机 (4)   10k 电位器 (4)   按钮 (4)   发光二极管 (4)   5V (1A) 直流电源适配器   电阻器(10k (4)、2.2k(4))   面包板   连接电线
[单片机]
使用<font color='red'>ARM</font>7 LPC2148微控制器构建一个简单的机械臂
ARM启动中的分散加载
分散加载作用: 可以将代码放入不同的存储空间。 5个G的计算机,电子专业书籍分享。 链接:https://pan.baidu.com/s/1y8BnUlGmiJMujLlTyrhznA 提取码:j9na 1.基本概念 了解分散加载文件之前,首先需要了解Code、RO-Data、RW-Data、ZI-Data。 Code:程序代码 RO-Data:程序中定义的常量以及const型数据 RW-Data:已经初始化的静态变量,变量有初始值 ZI-Data:没有初始化的静态变量,变量没有初始值 #define num 10 /*RO-Data*/ char const flage = 5;
[单片机]
通用数字存储示波器的基本功能及技术参数
这套课程首先给大家介绍一下通用示波器的一些基本功能,由我们的工程师来做实际的操作演示,全面了解构成一款示波器最基本的功能以及相应的参数,并在我们自己的DIY示波器中实现相应的一些最基本、最核心的相应的功能。 参照的是Tektronix的TBS1202B,这是一款经济型的通用数字存储示波器。其它的通用数字示波器在指标、功能以及操作界面方面有些许的差别,但它们的主要功能、控制机制以及接口方式基本上都是类似的。 实物图片 官网图片 先来看看示波器最主要的功能及指标: 从仪器的面板上可以看出它是一款双通道200MHz、2Gsps的数字示波器,200MHz(Hz为频率的单位)表示这款示波器能够观察的模拟信号的带宽(3dB)为20
[测试测量]
通用数字存储示波器的<font color='red'>基本功</font>能及技术参数
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved