初识s3c2440A之ARM体系架构入门linux硬件

news2024/9/28 9:23:52

文章目录

  • 前言
  • 一、环境平台的基本介绍
  • 二、ARM体系架构必备知识
    • 1. 计算机三大组成
    • 2. ARM的分类
      • 2.1 ARM Cortex-A系列
      • 2.2 ARM Cortex-R系列
      • 2.3 ARM Cortex-M系列
    • 3. 2440ARM的系统架构
  • 总结


前言


如果大家在前期学习了c语言,并且具备了一定的c语言功底,且学习了shell,文件IO,进程线程,网络编程、数据库以及数据结构等基本的嵌入式软件的基础知识,以及做过一定项目的前提下,可以进入到本章内容的学习,那么接下来我将主要分享的是嵌入硬件部分的学习;各位同学可以跟着每期的分享一步步来,那么最终达到我们想要的高度并不是一件非常难的事情;

一、环境平台的基本介绍

硬件:友善之臂s3c2440A开发板
配套设置:jlink下载器、jtag下载器,网线;
注意:在前期裸机开发的过程中使用stlink下载方式,后期会有调整;

二、ARM体系架构必备知识

1. 计算机三大组成

计算机的三大组成:CPU、内存(RAM)和硬盘(ROM);
CPU通过地址总线与内存进行通信,内存掉电数据会丢失;
CPU与硬盘通过控制器进行连接,掉电数据不丢失;

2. ARM的分类

SOC(片上操作系统) = cpu + 功能电路(iic、spi、uart等);
这里注意ARM公司只负责芯片的设计,芯片的制造是由半导体厂商制造的;且S3C2440A是ARM9型号的产品;
那么arm的型号分类主要有以下几个:
ARM12更改命名为ARM-Cortex
ARM公司将ARM11以后的产品命名为Cortex,并分为A、R和M三个系列。Cortex系列属于ARMv7架构,是ARM公司最新的指令架构。

		ARM7:ARMv4 架构
		ARM9:ARMv5 架构
		ARM11:ARMv6 架构
		ARM-Cortex 系列:ARMv7架构

ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统, 因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间 。
ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行Linux等多用户多进程的操作系统,应用场合也不同于ARM7。

2.1 ARM Cortex-A系列

性能级CPU,对主频和性能要求很高(A8 A9 A10 … A53 A76)。
该系列面向尖端的基于虚拟内存的操作系统和用户应用,也叫应用程序处理器。
应用包括:智能手机、数字电视、智能本和上网本、家用网关、电子书阅读器等。

2.2 ARM Cortex-R系列

对实时性要求很高,面向深层的嵌入式实时应用。
包括:汽车制动系统、动力传动解决方案、大容量存储控制器以及联网和打印。

2.3 ARM Cortex-M系列

MCU,单片机,针对微控制器,在该领域中需要进行快速且具有高确定性的中断管理、同时需将门数和可能功耗控制在最低。

3. 2440ARM的系统架构

ram:内存;
rom:是只读内存(硬盘),是非易失性固态半导体存储器,比如flash就是rom器件;
mpu:微处理器;
mcu:微控制器;
mmu(电路):完成虚拟地址到物理地址的转换;
sram:静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。当断电时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。
dram:DRAM(动态随机存取内存),最常用的一种电脑内存。它通常使用一个晶体管和一个电容器来代表一个比特。和ROM及PROM等固件内存不同,随机存取内存的两种主要类型(动态和静态)都会在切断电源之后,丢失所储存的数据。
sdram:同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。
norflash:NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多,在设计中应该考虑这些情况。
nandflash:Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储;
mmc:MMC(MultiMediaCard)是一种协议或者规范,规范了卡的形状尺寸,通讯协议等内容,符合MMC协议的卡片叫做MMC卡,即多媒体卡,现在市面上基本见不到了。
emmc:eMMC(embedded MultiMediaCard)是一种嵌入式存储介质,或者说是一种存储器。主要用在手机、平板等设备上,早前因为不同厂家生产的NAND Flash接口不同,操作方式不同,为了解决这种不同MMC协会制定了eMMC标准,统一了NAND Flash接口。eMMC就是控制器+NAND Flash,对外接口都是eMMC,内部如何实现NAND Flash厂家自由发挥。标准的统一大大加快了手机类产品的研发速度。

2440A的主控芯片是三星的S3C2440A,属于ARM9系列,主频400MHz,有64M大小的sdram,具有2M大小的norflash以及256M的nandflash;
SDRAM也可以理解我们通常所说的内存,其与cpu通过数据总线和地址总线进行数据交互;
由于norflash适用于存储少量代码并且需要擦除多次的场景,且norflash也是通过地址总线直接与cpu进行数据交互,所以它的读写速度也非常快;
但是nandflash的存储密度比较高,读写速度快,所以nandflash与cpu进行数据交互需要特殊的系统接口,我们2440用的是flash控制器与之进行连接;大概的示意图如下:
在这里插入图片描述
cpu的内部组成:ALU(算术逻辑单元,做算术运算)、寄存器、指令集、cache、流水线;
寄存器:硬件操作接口;
s3c2440是32位处理器,指的是可以进行32位寻址访问,数据总线也是32位;
指令存储和执行的方式:
(1)ARM状态,32位机器码,每个指令战4个字节的空间;
(2)thumb状态:16位机器码,每个4个字节可以存储两条指令;
但是为了取指简便,所以这里使用4个字节存储一条指令,当然这里是可以将其手动设置为thumb状态的;

总结

本期的分享呢大家不容小觑,因为目前来看,除了一味的去追求某个具体知识点的运用,对产品的总体架构的认识也是至关重要的,这能够使得我们在学到具体技术点后,如果想要对产品进行评估选型时,那么是必不可少的;这也是我们在学习这个领域必备的一种整体性的学习原则,不能知识深扎与某一个知识或某一类技术而对它的整体不做过多了解;所以大家认真领会本期内容,从S3C2440这个开发板中,获取到对这一系列产品的一个认知;
最后,各位小伙伴们如果喜欢我的分享可以点赞收藏哦,你们的认可是我创作的动力,一起加油!

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

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

相关文章

7 原子类

Java.util.concurrent.atomic 7.2 没有CAS之前 多线程环境中不使用原子类保证线程安全i(基本数据类型) class Test {private volatile int count 0;//若要线程安全执行执行count,需要加锁public synchronized void increment() {count;}pu…

二叉树前序遍历:在树叶掉落前,寻找根的方向

本篇博客会讲解力扣“144. 二叉树的前序遍历”的解题思路,这是题目链接。 先来审题: 由于本篇博客会使用C语言来实现这道题,最简单的解法自然是使用递归。所谓前序遍历,即按照“根、左子树、右子树”的顺序来遍历,当…

【新版】系统架构设计师 - 数据库系统

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 数据库系统考点摘要数据库系统模式数据库视图数据模型(基本数据模型)数据库完整性约束关系模型关系代数规范化理论候选键、主键、外键、主属性,非主属性求候选键…

【笔记】最优解人生

死前归零 如果在死亡之前没有将赚到的钱花完,那么剩下那些没花完的钱,就是你白白浪费的生命能量。 60岁以后,虽然医疗开支变大,但娱乐,衣物的开始会变小,总体上开销会越来越少。 如何“死前归零”呢&…

两两交换链表中的节点

题目描述 代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next…

【备战秋招】每日一题:4月15日美团春招:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站(含题解) www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据,挂载到我们的OJ上,供大家学习交流,体会笔试难度。现已录入200道互联网大厂模拟练习题&a…

简单实用折叠面板可以折叠收起展开内容区域

前端简单实用折叠面板可以折叠收起展开内容区域, 下载完整代码请访问uni-app插件市场地址: https://ext.dcloud.net.cn/plugin?id12860 效果图如下: 代码如下: # 简单实用折叠面板可以折叠收起展开内容区域。 #### 使用方法 使用方法 <!-- leftText:做标题 rigText:…

智能算法终极大比拼,以CEC2005测试函数为例,十种智能算法直接打包带走,不含任何套路!

包含人工蜂群(ABC)、灰狼(GWO)、差分进化(DE)、粒子群(PSO)、麻雀优化(SSA)、蜣螂优化(DBO)、白鲸优化(BWO)、遗传算法(GA)、粒子群算法(PSO)&#xff0c;基于反向动态学习的差分进化算法&#xff0c;共十种算法&#xff0c;直接一文全部搞定&#xff01; 由于上一篇代码&…

赋能矿山 | KaiwuDB 智慧矿山解决方案

行业背景 随着勘探和矿产开发技术的提高以及能源需求量的大幅增加&#xff0c;矿山开发速度持续加快。随之而来的诸多弊端&#xff0c;如矿山资源综合利用率低、管理方式粗放、安全和环境污染等问题日益突出&#xff0c;使得矿业智能化建设迫在眉睫。 近年来&#xff0c;政府…

【算法与数据结构】160、LeetCode相交链表

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;这道题题目蛮长的。说的大概意思就是对比指针地址&#xff0c;只要相等了&#xff0c;那就是相交节点。…

华为OD机试之执行时长(Java源码)

执行时长 题目描述 为了充分发挥GPU算力&#xff0c;需要尽可能多的将任务交给GPU执行&#xff0c;现在有一个任务数组&#xff0c;数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。 假设GPU最多一次执行n个任务&#xff0c;一次执行耗时1秒&#xff0c;在保证GPU不空…

论文解读 | 机器人路径跟踪的受控纯追踪法

原创 | 文 BFT机器人 01 摘要 这篇文章是关于机器人路径跟踪的受控纯追踪算法的研究。文章介绍了传统的纯追踪算法以及相关变体&#xff0c;并提出了受控纯追踪算法作为本文的主要贡献。该算法旨在适应实际环境中的服务和工业移动机器人&#xff0c;提供方法来调整机器人的平移…

关于spring boot报javax/servlet/MultipartConfigElement错误以及的问题

springboot在启动时报java.lang.NoClassDefFoundError: javax/servlet/MultipartConfigElement 解决方法&#xff1a;将pom.xml文件中的provided删掉

盛元广通生物化学重点实验室化学品信息化安全管理系统

生物化学重点实验室是国家基础研究和高技术研究的重要基地&#xff0c;是培养和造就高层次创新型人才的重要基地。为保障实验室化学品安全使用&#xff0c;实验人员可通过现场或移动端管理系统实现化学品安全使用与存储。盛元广通生物化学重点实验室化学品信息化安全管理系统具…

方波信号拆分及合成

1. 前言 数字处理器产生的都是方波信号&#xff0c; 做EMC会有各种高频率的辐射超标。比如下图为EMC测试辐射图&#xff0c;其中480MHz左右频率超标&#xff0c;那么就需要分析这个频率是谁产生的&#xff0c;但是整个系统都没有谁使用了这么高的频率信号。但是一般根据经验都知…

mysql-explain-其他

eq_ref 主键和唯一索引的所有部分被连接使用&#xff0c;最多只会返回一条符合条件的记录【主键关联查询】 ref: 根节点二分查找 没有使用唯一索引&#xff0c;而是走了普通索引【二级索引】或者唯一索引的部分前缀&#xff0c;有可能查出多个符合条件的行。 range 范围扫…

全网最全的Python教程(非常详细),从零基础入门到上岗!

Python的火&#xff0c;有目共睹。Python陆续登上了IEEE、PYPL排行榜单之首&#xff0c;对于Python的崛起TIOBE排行榜也给予了回应&#xff1a;由于全球流行度在过去一年中涨幅最高&#xff01; 同时人工智能的兴起&#xff0c;也给了Python无限可能&#xff0c;让Python越来越…

Systick实现中断-GD32

定时器中断-GD32 include "gd32f10x.h" #include "systick.h" #include "LED.h"volatile static uint32_t delay_reload; volatile static uint32_t delay_value;/*!\brief configure systick\param[in] none\param[out] none\retval …

asp.net试卷自动生成系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net试卷自动生成系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发 asp.net试卷自动生成系统VS开发sq…

Java 泛型:概念、语法和应用

文章目录 一、什么是 Java 泛型&#xff1f;二、为什么要使用泛型三、Java 泛型的语法四、Java 泛型的应用五、Java 泛型的示例六、总结 随着 Java 编程语言的不断发展和更新&#xff0c;Java 1.5 版本引入了一项全新的特性——Java 泛型&#xff08;Java Generic&#xff09;&…