ARM学习笔记_1 介绍,Keil环境搭建

news2024/11/16 9:01:46

从零开始学ARM

学习自b站一口linux老师的课程。

文章目录

  • 从零开始学ARM
  • 介绍
    • 为什么要学汇编?
    • ARM是什么?
    • SOC
    • 计算机历史
    • 冯诺依曼结构介绍
    • 哈佛架构介绍
    • 混合架构介绍
    • CPU运行原理
  • 环境搭建

介绍

学习ARM需要学计算机原理,汇编,C语言,基本电路,硬件控制器原理,以及编写相应驱动程序。

为什么要学汇编?

  • 了解系统启动、上电、函数调用等底层实现。
  • 真正地提高函数运行效率。
  • 一些软件的破解……

ARM是什么?

设计微处理器架构的公司,包含三类:cortex-A, -R, -M, 高性能、实时、轻量级。

ARM公司只设计架构不生产产品。每个处理器都需要依靠一定的ARM架构来设计。

授权给其他做产品的公司分为架构层授权,内核层授权(ip核),使用层授权。

  • 架构:可以对ARM架构扩展缩减,如苹果(可以修改我的文章)。
  • 内核:在内核基础上加自己的外设,如三星(可以引用我的文章,但是不能改)。
  • 使用:可以用别人的ip核,但是不能更改(只能转发我的文章)。

SOC

system on a chip, 最大的特点是便宜,开发方便。

image-20230517080538781

AHB:高速总线,存基本的或者性能较高的东西。

APB:外部总线。

计算机历史

巴贝奇:机械结构的差分机。

ada:计算机程序概念的创始人,如循环、子程序等概念。

阿塔纳索夫的ABC,图灵的巨人机都是相当于证明了电路实现计算是可行的,处于证明阶段,类似ChatGPT。冯诺依曼则是设计计算机通用架构。

CPU的发展:最早的仙童半导体,衍生出的Intel公司,

冯诺依曼结构介绍

我们知道冯诺依曼结构5大组成,通过总线(db ab cb)连接。

存储器:cache,金字塔型,从上到下L0寄存器,L1 L2 L3 高速缓存,L4 主存(内存条,CPU可直接访问),本地二级存储(本地磁盘),远程二级存储(分布式文件系统,web服务器)。

哈佛架构介绍

相比冯,程序和数据分开存储。stm32 51就是哈佛架构,pc等是冯诺依曼架构。哈佛执行效率高,冯诺依曼占用资源少。

混合架构介绍

主要是冯诺依曼架构,但是一些上电启动的部分是哈佛架构。

CPU运行原理

指令计数器指着当前指令地址(PC)——去取指令,存到指令寄存器中——执行指令(指令译码,取操作数,运算),从存储单元和程序的数据段取数据并运算,PC++。

指令集:CISC RISC 复杂和精简,ARM是精简。龙芯的MIPS和X86的指令集没有与RISC的指令纠纷,不涉及卡芯片的问题。

ARM指令格式:操作码+操作数的地址。

环境搭建

使用的是绿色的Keil Mdk,和stm32用的是同一个软件开发。

需要安装三星 samsung 的 s3c2400 芯片包,下载地址:https://armkeil.blob.core.windows.net/legacy/MDK79525.EXE

.s文件本来是一些初始化内容,这里我们不需要用到那么多。

.s 文件修改代码:

 AREA Example,CODE,READONLY ;声明代码段Example
 ENTRY ;程序入口
Start
 MOV R0, #0
 MOV R1,#10
 BL ADD_SUM ;调用子程序
 B OVER ;跳转到结尾
ADD_SUM
 ADD R0,R0,R1
 MOV PC,LR
OVER
 END

打开debug模式后,registers里面是32位地址,disassembly 里是翻译后的机器码。

这里注意asm用空格的缩进来指代指令!

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

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

相关文章

强大,Midjourney Imagine API接口,AI画画的福音!

前几天跟大家分享过一篇 ”让chatGPT教你AI绘画|如何将chatGPT与Midjourney结合使用?“,但是由于许多小伙伴们使用Midjourney还有许多困难,又要上网,还要注册Discord,MJ的使用成本很高,让大家望而却步&…

【计算机视觉 | 目标检测】目标检测中的评价指标 mAP 理解及计算(含示例)

文章目录 一、目标检测的评价指标1.1 Precision1.2 Recall1.3 Average Precision(AP)1.4 mean Average Precision(mAP)1.5 Intersection over Union(IoU)1.6 F1-score 二、基础知识2.1 Precision2.2 Recall…

5.20下周黄金行情走势分析及开盘独家交易策略

近期有哪些消息面影响黄金走势?下周黄金多空该如何研判? ​黄金消息面解析:周五(5月19日),现货黄金价格下跌又反弹,现货黄金持续走高美联储主席鲍威尔:那些积极的供应冲击不太可能重复出现,美联…

初阶数据结构之单链表的实现(四)

文章目录 链表的概念及结构一、链表的逻辑结构是什么样的?二、链表的初始化2.1链表初始化的示意2.2链表初始化代码实现 三、链表的各类接口函数定义四、链表的各类接口函数的代码实现4.1链表的打印代码实现4.1.1打印代码的实现 4.2链表的尾插代码实现4.2.1尾插代码实…

Mongodb 6.0 变化的配置参数与连接的方式变化

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

【故障排查】【伪处理】Jenkins在iframe窗口无法添加secret text凭证

问题描述 环境的ingress是,有个 svc 暴露 30080 -> 80 大致流程: svc(ingress-nginx) 30080端口 -> pod (nginx-ingress-controller ) 80端口 -> ingress -> svc -> pod (Jenkins 8080端口&#xff0…

基于粒子群优化算法的路径问题优化研究及其在Python中的实现

基于粒子群优化算法的路径问题优化研究及其在Python中的实现 文章目录 基于粒子群优化算法的路径问题优化研究及其在Python中的实现一、简介二、引言1、粒子群优化算法简介2、PSO算法与鸟群的类比 三、PSO算法数学原理1、粒子的位置和速度2、适应度函数3、粒子的个体最优和全局…

基于html+css的图展示80

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

从零开始搭建属于自己的hexo博客

前提要素:一个提供博客运行的服务器或者XX云。 先展示一下搭建好的样子,给大家一点动力: 整个搭建过程大概需要30分钟不到,请各位控制自己的时间~ 好了,废话不多说我们开始! 1、首先登录我们准备好的服…

redis高级篇二(分片集群)

一)进行测试Sentinel池: ​ Controller public class RestController {RequestMapping("/Java100")ResponseBodypublic String start(){//1.配置信息HashSet<String> setnew HashSet<>();// 连接信息 ip:port// set.add("127.0.0.1:27001");se…

[抓包] 微信小程序(PC版)如何抓包

本文抓包环境 Win10&#xff0c;微信(PC版本) v3.9.2.20&#xff0c;Burp Suite v1.7.32&#xff0c;Proxifier v3.42 不使用安卓模拟器 一、下载安装好Burp Suite&#xff0c;Proxifier 链接: https://pan.baidu.com/s/177BIEgCmZG9MfqQ4D0PTsg 提取码: 3hex 二、开始抓包 …

【ASP.NET Core笔记】 使用razor pages构建网站

使用ASP.NET Core Razor Pages 构建网站 sqlite 北风数据库 1. Northwind.Common.DataContext.Sqlite 是Sqlite的数据库上下文&#xff0c;有三个类&#xff1a;ConsoleLogger.csNorthwindContext.csNorthwindContextExtensions.cs 1.1 NorthwindContext 继承自 Microsoft.Enti…

计算机图形学-GAMES101-10

一、纹理 原模型网格->逐面Shading->逐像素Phong Shading->纹理贴图->换个纹理再贴图->环境光照。 &#xff08;1&#xff09;环境贴图 纹理就是一张图&#xff0c;纹理是GPU里的一块内存&#xff0c;可以进行点查询、范围查询、滤波。  环境光贴图、环境光映…

The authenticity of host ‘gitee.com (212.64.63.190)‘ can‘t be established.

在将本地仓库的代码推送到远程仓库时&#xff0c;出现下面报错。 $ git push -u origin master The authenticity of host gitee.com (212.64.63.190) cant be established. ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQpKkGYoFgbVr17bmjey0Wc. Are you sure you w…

Kali-linux分析密码

在实现密码破解之前&#xff0c;介绍一下如何分析密码。分析密码的目的是&#xff0c;通过从目标系统、组织中收集信息来获得一个较小的密码字典。本节将介绍使用Ettercap工具或MSFCONSOLE来分析密码。 8.2.1 Ettercap工具 Ettercap是Linux下一个强大的欺骗工具&#xff0c;也…

Mysql中常用到的查询关键字

文章目录 1、join2、like 模糊查询3、or4、distinct5、in 包含6、group by 分组7、order by8、limit 1、join MySQL 的连接主要分为内连接和外连接。 什么是内连接&#xff1a; 取得两张表中满足存在连接匹配关系的记录。 什么是外连接&#xff1a; 不只取得两张表中满足存在…

设计高端大气上档次的时尚品?!微软工程师借助AIGC成功圆梦!

&#xff08;本文阅读时间&#xff1a;5 分钟&#xff09; 在这个创意横飞、想象力爆棚的时代中&#xff0c;有很多美丽且吸引人的东西围绕在我们身边。然而&#xff0c;遗憾的是&#xff0c;被誉为“攻城狮”的我&#xff0c;内心里虽然非常喜欢且欣赏这些夺目的作品&#xff…

手动输入域账号自动禁用windows域用户的脚本

禁用windows域用户的脚本&#xff0c;需求&#xff1a; 1、显示该域用户的创建时间&#xff0c;最后登录时间和存放的OU&#xff0c; 2、将该账号禁用&#xff1b; 3、禁用后重新返回交互界面等待输入新的域账号。 Powershell脚本内如下&#xff1a; # 无限循环等待用户的输入…

Meta没做成的事OpenAI要干?ChatGPT之父推出加密项目Worldcoin

大模型焦虑还未停歇&#xff0c;鬼才创始人瞄准了加密领域。 继ChatPT之后&#xff0c;OpenAI的首席执行官Sam Altman推出的加密货币项目Worldcoin近日被透露融资近一亿美金&#xff0c;彻底搅翻了科技界与Web3的平静。 据官网描述&#xff0c;Worldcoin由Sam和Max Novendstern…

奇舞周刊第492期:提升 Web 核心性能指标的 9 个建议

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 提升 Web 核心性能指标的 9 个建议 大家好&#xff0c;我是 ConardLi。今天继续来为大家解读今年的 Google I/O&#xff0c;我会重点为大家解读前端开发者应该关注的信息&#xff…