【ARM】ARM接口技术

发布者:omicron25最新更新时间:2022-05-13 来源: eefocus关键字:ARM  接口技术 手机看文章 扫描二维码
随时随地手机看文章

#0开发工具的使用

##0.1安装keil4

在arm资料1压缩文件中找到mdk411.rar,解压,双击MDK411.exe进行安装

这里写图片描述

##0.2运行MDK411.EXE安装

这里写图片描述
这里写图片描述

##0.3选择好要安装的目的位置

这里写图片描述

点NEXT,安装界面如下

这里写图片描述

##0.4安装完成并运行

这里写图片描述

安装完成后,鼠标右键单击该程序,以管理员身份运行该程序:

这里写图片描述

把CID拷贝下来:

这里写图片描述

复制Computer ID:C2043-1B7RE ,然后运行

这里写图片描述

把CID填入上图,然后:

这里写图片描述

复制注册码:

这里写图片描述

复制注册码填入:

这里写图片描述

点ADD LIC后,提示:

这里写图片描述

提示:*** LIC Added Sucessfully ***

说明注册成功了。

##0.5安装JLink驱动

在资料2中可以找到Setup_JLinkARM_V408k.exe文件,双击安装JLink驱动

这里写图片描述

将会弹出如下窗口

这里写图片描述

然后一直点击next

这里写图片描述

最后提示出如下界面

这里写图片描述

##0.6运行测试例程,验证开发板是否OK

运行老师给的mini2440_led工程文件,即双击mini2440_led.uvproj文件

这里写图片描述

可以看到以下界面:

这里写图片描述
这里写图片描述

双击点开main.c,看看源码

这里写图片描述

看不懂,没关系,直接编译,看结果,点

这里写图片描述

在最下方提示出如下结果

这里写图片描述

紧接着点

这里写图片描述

进入调试界面

这里写图片描述

点击运行程序,听开发板蜂鸣器的运行状态!

(蜂鸣器一会响,一会停)

这里写图片描述

点击上面红【  X】停止运行

再次点击点【 这里写图片描述 】退出调试状态。

#1自己做一个例子

##1.1新建一个项目

这里写图片描述
这里写图片描述

##1.2选择与开发板对应的CPU型号

这里写图片描述
这里写图片描述

##1.3设置一个好的目标和组

这里写图片描述
这里写图片描述

结果如下:

这里写图片描述

##1.4配置目标

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

点OK!

##1.5创建一个测试文件

###1.5.1创建main.c文件

这里写图片描述
这里写图片描述

保存为main.c

这里写图片描述
这里写图片描述

把main.c添加到工程

这里写图片描述
这里写图片描述

###1.5.2建一个汇编文件

同样的步骤建一个汇编文件,保存,添加!

这里写图片描述
这里写图片描述

###1.5.3建立一个ini文件

这里写图片描述

内容如下:

说明:倒数第三行文件要根据实际情况进行设置


FUNC void SetupForStart (void) {  

  

// Program Entry Point  

  PC = 0x30000000;  

}  

  

  

FUNC void Init (void) {  

  

  _WDWORD(0x4A000008, 0xFFFFFFFF);      // Disable All Interrupts  

  

  _WDWORD(0x53000000, 0x00000000);      // Disable Watchdog Timer  

    

                                        // Clock Setup   

                                        // FCLK = 300 MHz, HCLK = 100 MHz, PCLK = 50 MHz  

  _WDWORD(0x4C000000, 0x0FFF0FFF);      // LOCKTIME  

  _WDWORD(0x4C000014, 0x0000000F);      // CLKDIVN  

  _WDWORD(0x4C000004, 0x00043011);      // MPLLCON  

  _WDWORD(0x4C000008, 0x00038021);      // UPLLCON  

  _WDWORD(0x4C00000C, 0x001FFFF0);      // CLKCON  

  

                                        // Memory Controller Setup for SDRAM  

  _WDWORD(0x48000000, 0x22000000);      // BWSCON  

  _WDWORD(0x4800001C, 0x00018005);      // BANKCON6  

  _WDWORD(0x48000020, 0x00018005);      // BANKCON7  

  _WDWORD(0x48000024, 0x008404F3);      // REFRESH  

  _WDWORD(0x48000028, 0x00000032);      // BANKSIZE  

  _WDWORD(0x4800002C, 0x00000020);      // MRSRB6  

  _WDWORD(0x48000030, 0x00000020);      // MRSRB7  

  

  _WDWORD(0x56000000, 0x000003FF);      // GPACON: Enable Address lines for SDRAM  

}

  

  

// Reset chip with watchdog, because nRST line is routed on hardware in a way   

// that it can not be pulled low with ULINK  

  

_WDWORD(0x40000000, 0xEAFFFFFE);        // Load RAM addr 0 with branch to itself  

CPSR = 0x000000D3;                      // Disable interrupts  

PC   = 0x40000000;                      // Position PC to start of RAM  

_WDWORD(0x53000000, 0x00000021);        // Enable Watchdog  

g, 0                                    // Wait for Watchdog to reset chip  

  

Init();                                 // Initialize memory  

LOAD .objnew.axf INCREMENTAL         // Download program  

SetupForStart();                        // Setup for Running  

g, main                                 // Goto Main


保存为ram.ini


##1.6设置参数

这里写图片描述
这里写图片描述

##1.7上板子调试


这里写图片描述
这里写图片描述
这里写图片描述

#2ARM接口原理

##2.1查看原理图

思路:

要控制一个设备,首先想到的是搞清楚这个硬件设备在什么位置。 怎么办?

这里写图片描述

参考《mini2440-um-20090223.pdf》第13页

找到丝印,再找原理图

这里写图片描述

参考原理图《mini2440原理图.pdf》第3页。

通过网络表nLED_1,在原理图中找到控制这个灯的cpu引脚。

这里写图片描述

找到cpu引脚与LED灯的对应关系如下

GPB5----------------- nLED _1

GPG6----------------- nLED _2

GPB7----------------- nLED _3

GPB8----------------- nLED _4

接下来怎么办?

接下来就要看cpu的说明书了,就像我们买了一个微波炉,使用前就要看一下它的说明书,我们CPU的说明书就是s3c2440的datasheet。即《S3C2440全套中文手册.PDF》


##2.2GPIO控制原理

这里写图片描述
这里写图片描述
这里写图片描述

##2.2.1GPBCON

image.png

两个位控制一个引脚,所以GPB0GPB10共11各引脚,需要021共22各位来设置

00----该引脚配置为输入

01----该引脚配置为输出

10------该引脚配置为其他特殊功能

11------一般引脚表示保留,未使用

要让我们四个LED亮灭,GPBCON寄存器该如何设置呢?

GPBCON===?????

GPBDAT是数据寄存器,用来控制(或者反应)引脚的高低电平,该寄存器是一个位对应一个引脚,如果某个位为0那么对应引脚为低电压,如果为1则引脚为高电平

##2.2.2GPBDAT

image.png

原理搞清楚了,程序怎么写?

##2.3程序怎么写

我们要把某个引脚设置为输出,也就是我们的GPBCON寄存器要配置为0x15400,那么这个值怎么给我们的cpu呢?

这里写图片描述

这里的地址,就是cpu提供给我们控制它的接口。

知道了这个接口,代码怎么操作呢?

这里涉及到怎么访问可读性的绝对地址问题?


void delay(int time)

{

   int i,j;

   for(i=0; i      for(j=0; j<1000; j++);

}

int main(void)

{

//GPBCON 0x56000010 R/W 配置端口B 的引脚

    //31                                    0

    //0000 0000 0000 0001 0101 0100 0000 0001

// 0 0   0     1    5    4   0    1 GPB0

    *(int *)0x56000010 = 0x15401;   //设置GPB5/6/7/8 to output  and 1 beep


//GPBDAT 0x56000014 R/W 端口B 的数据寄存器

    //31                                    0

    //0000 0000 0000 0000 0000 0001 1110 0001

// 0 0   0     0    0    1   e    1 GPB0

*(int *)0x56000014 = 0x01;   //让GPB第5/6/7/8 设置为低电平,第1位为高:为响亮

    while(1)

{

       *(int *)0x56000014 = 0x00000001; //响亮

delay(1000);

   *(int *)0x56000014 = 0x000001e0;

    delay(1000);

}


}


学生动手实现延时函数,宏定义,led配置,led亮,led灭函数。


##2.4练习,自己实现beep


#附录


工具下载链接:

https://github.com/1040003585/Mini2440/tree/master/Tools

关键字:ARM  接口技术 引用地址:【ARM】ARM接口技术

上一篇:【ARM】使用J-Link下载u-boot到Mini2440开发板
下一篇:【ARM】Linux驱动移植

推荐阅读最新更新时间:2024-11-03 03:12

机器学习下一步 ARM推分散AI
人工智能(AI)现在以机器学习与深度学习技术,让性能提升到更高端段,但英国半导体设计大厂安谋(ARM)指出,由于人工智能的学习仍面临网路频宽、耗电、隐私、资安等种种课题待克服,解决这些课题的方式,就是分散式人工智能(Distributed Intelligance)。   安谋是由该厂CTO、Mike Muller,于2017年10月24~26日美国矽谷的Arm TechCon 2017中,提出分散式人工智能的构想,并称其概念受到无线网路基地台架构的启发。   目前机器学习人工智能的基本概念,是由终端收集数据与执行云端运算结果,云端则计算终端的数据数据,将其归纳为法则而完成学习,这种做法可以利用低耗电低性能的终端设备,执行高性能人
[半导体设计/制造]
基于ARM系统硬盘接口的使用和文件管理
  在“计算机接口技术”教学中, 有关硬磁盘接口适配器这一章比较难学, 主要涉及到I?O 控制层对扇区读写和使用逻辑映射层对数据进行管理问题,内容比较抽象, 教师和学生只能凭想象去教与学。笔者在科研中, 通过对嵌入式微处理器与硬盘接口的开发应用, 加深了对这些内容的理解, 为拓展这部分教学内容的深度和广度奠定了基础, 并采用理论与实际结合的方式去讲授有关的内容, 受到了学生的欢迎。故撰此文与从事硬盘接口技术教学的老师们作一交流。   1 ARM 系统及IDE 接口综述   ARM (A dvanced RS IC M ach ines) 是一种低功耗、高性能的32 位处理器。本文介绍的系统是基于Sam sung 公司S3C
[嵌入式]
ARM 指令集 比较指令
译注:CMP 和 CMP 是算术指令,TEQ 和 TST 是逻辑指令。把它们归入一类的原因是它们的 S 位总是设置的,就是说,它们总是影响标志位。 CMN : 比较取负的值 (Compare Negative) CMN{条件}{P} , status = op_1 - (- op_2) CMN 同于 CMP,但它允许你与小负值(操作数 2 的取负的值)进行比较,比如难于用其他方法实现的用于结束列表的 -1。这样与 -1 比较将使用: CMN R0, #1 ; 把 R0 与 -1 进行比较 详情参照 CMP 指令。 CMP : 比较 (Compare) CMP{条件}
[单片机]
芯片短缺何时结束?ARM CEO给答案
安谋(ARM)首席执行官西蒙·希加斯(Simon Segars)称全球芯片短缺问题解决起来非常复杂,并预计目前的供应链中断将持续到2022年。 据这位高管透露,半导体行业如今每周花费20亿美元来增加产能,并预计这一投资将在五年内带来50%的增长。 他指出,亚洲产量不足加上地缘政治紧张局势,正促使芯片制造商在其他地区建厂,但他警告称,这并非万全之策。 “仅仅建工厂是不够的。”希加斯表示,“你需要材料、化学品。整个元素周期表都被用于制造半导体。” 这位高管还列出了一些半导体生产所需的“下游”活动,包括测试、封装和运输。 希加斯认为,在不考虑更广泛市场的情况下投资新工厂可能是有害的,而不是有益的。 “我们这样做会
[半导体设计/制造]
Arm-Linux摄像头驱动程序的移植
Arm开发板上摄像头的移植有两种方法:第一,将驱动程序添加到内核,通过编译内核,烧写到板子上;第二种,通过动态加载摄像头驱动模块的方法进行硬件的驱动。作者首先在PC的linux系统进行摄像驱动程序的移植,保证驱动程序版本正确,然后将驱动程序编译成模块,通过文件系统挂载到板子,然后进行加载,进而创建摄像头设备节点。下面将具体介绍摄像头动态加载的过程。 移植过程所使用的摄像头型号ZC301P,arm板上的内核版本为2.6.9,开发板为pxa270,所采用的驱动程序包为spca5xx-20060501.tar.gz。 第一步,使用命令解压文件: tar zxvf spca5xx-20060501.tar.gz
[单片机]
嵌入式微处理器ARM7202触摸屏接口设计
1 引言 嵌入式系统中触摸屏越来越广泛地应用。不同的应用领域触摸屏的设计方式也各不相同,一般有以下三种:(1)应用触摸屏模块。触摸屏模块提供标准的硬件接口与应用系统(一般为PC或X86架构的工控机)相连,安装驱动程序后即可工作,基本无需开发;(2)扩展触摸屏控制器。这是嵌入式系统中设计触摸屏普遍使用的方法,常用的触摸屏控制芯片有ADS7843、ADS7846等,这些芯片内部集成了A/D转换器和触摸屏的驱动电路,同时要设计一定的软件;(3)与前面方式(2)相仿,有些处理器集成了A/D转换器,通过IO口模拟触摸屏的驱动信号也可实现触摸屏的控制。 随着芯片技术的发展,处理器内部集成的资源越来越丰富,有些芯片内部已经集成了触摸屏控制器
[单片机]
嵌入式微处理器<font color='red'>ARM</font>7202触摸屏接口设计
ARM处理器指令立即寻址的限制
在ARM处理器的汇编语言中,对指令语法格式中的常数表达式有这样的规定: 该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的。 给定一个立即数,判断其是否合法可以分三步:首先将给定的立即数写成32位二进制的形式;然后看能不能用一个8位的二进制数包括所有含1的部分,如不能则非法;最后看这个8位二进制数能不能循环右移偶数位得到给定的立即数,不能数则非法。 0xff=00000000 00000000 00000000 11111111:相当于8位二进制11111111循环右移0位得到,合法; 0x104=00000000 00000000 00000001 00000100:相当于8位二进制01000001循环右移
[单片机]
imec 牵头组建汽车芯粒计划,Arm、宝马集团、博世等巨头首批承诺加入
10 月 21 日消息,据 imec 微电子研究中心比利时当地时间本月 10 日公告,包括 Arm、宝马集团、博世在内的多家重要企业承诺首批加入 imec 牵头组建的汽车芯粒 / 小芯片计划(Automotive Chiplet Program,简称 ACP)。 其余宣布率先加入 ACP 计划的企业还包括: 日月光(外包封测 OSAT 巨头)、Cadence 楷登电子、西门子、SiliconAuto(鸿海科技与 Stellantis 合资车用芯片设计企业)、Synopsys 新思科技、Tenstorrent、法雷奥(汽车零部件供应巨头)。 imec 表示,传统的车用芯片方案在满足 ADAS、车载娱乐系统等越来越复杂的需求上日益
[汽车电子]
小广播
设计资源 培训 开发板 精华推荐

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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