【ARM】ARM接口技术

简介: 0开发工具的使用1安装keil42运行MDK411EXE安装3选择好要安装的目的位置4安装完成并运行5安装JLink驱动6运行测试例程验证开发板是否OK1自己做一个例子1新建一个项目2选择与开发板对应的CPU型号3设置一个好的目标和组4...

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 .\obj\new.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

GPBCON xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
GPB x x x x x 10 9 8 7 6 5 4 3 2 1 0

两个位控制一个引脚,所以GPB0~GPB10共11各引脚,需要0~21共22各位来设置
00—-该引脚配置为输入
01—-该引脚配置为输出
10——该引脚配置为其他特殊功能
11——一般引脚表示保留,未使用
要让我们四个LED亮灭,GPBCON寄存器该如何设置呢?
GPBCON===?????
GPBDAT是数据寄存器,用来控制(或者反应)引脚的高低电平,该寄存器是一个位对应一个引脚,如果某个位为0那么对应引脚为低电压,如果为1则引脚为高电平

2.2.2GPBDAT

GPBDAT xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
GPB xxxx xxxx xxxx xxxx xxxx x 10 9 8 7 6 5 4 3 2 1 0

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

2.3程序怎么写

我们要把某个引脚设置为输出,也就是我们的GPBCON寄存器要配置为0x15400,那么这个值怎么给我们的cpu呢?
这里写图片描述
这里的地址,就是cpu提供给我们控制它的接口。
知道了这个接口,代码怎么操作呢?
这里涉及到怎么访问可读性的绝对地址问题?

void delay(int time)
{
   int i,j;
   for(i=0; ifor(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

Wu_Being 博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢!

Wu_Being 吴兵博客接受赞助费二维码

如果你看完这篇博文,觉得对你有帮助,并且愿意付赞助费,那么我会更有动力写下去。

目录
相关文章
|
6月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
1027 61
|
7月前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
ARM64技术 —— 系统调用指令SVC、HVC和SMC的使用规则
ARM64技术 —— 系统调用指令SVC、HVC和SMC的使用规则
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
ARM64技术 —— MMU处于关闭状态时,内存访问是怎样的?
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
阿里云、平头哥与Arm联合举办的飞天技术沙龙在上海举行,聚焦Arm Neoverse核心优势和倚天710计算实例在大数据、视频领域的应用。活动中,专家解读了倚天710的性能提升和成本效益,强调了CIPU云原生基础设施处理器的角色,以及如何通过软件优化实现资源池化和稳定性平衡。实例展示在视频编码和大数据处理上的性能提升分别达到80%和70%的性价比优化。沙龙吸引众多企业代表参与,促进技术交流与实践解决方案的探讨。
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
ARM64技术 —— Device Memory Type
ARM64技术 —— Device Memory Type
|
Cloud Native 安全 数据中心
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
基于「倚天710自研芯片+CIPU云原生基础设施处理器」组合的倚天ECS实例为解决算力挑战提供新思路。
|
人工智能 安全 数据安全/隐私保护
叫好不叫座?Arm、英特尔、AMD 等 5 位技术大咖畅聊机密计算技术
机密计算作为一项新兴技术,为我们如何安全处理和计算敏感数据提供了新的视角和解决方案。

热门文章

最新文章

下一篇
开通oss服务