嵌入式AI工程师基础学习——ARM体系结构day1

目录

1、前言--学习路径

        1.1、应用层

        1.2、底层

2、ARM体系结构

2.1、ARM简介

2.2、工作模式

2.3、寄存器


1、前言--学习路径

1.1、应用层

前期课程:C语言,Linux基础,数据结构,linux高级编程(io;进线程,网络):(重点:围绕c开展,数据结构,综合项目:电子词典,前期知识加进去)

中期课程:c++,qt(重点:c++,gui开发,面向对象的编程思想 )

1.2、底层

后期课程:ARM体系结构,Linux系统移植,linux驱动开发(c+arm汇编)软硬结合

项目阶段:综合项目(stm32)

python人工智能

为什么要学习底层;为了解决高级语言解决不了的问题

例题一i++和++i哪个效率更高?

​​​​​​​int i;
i++;
++i;

答案:++i;

A obj;
++obj;  //直接返回当前对象**`
obj++;  //产生临时对象**`

例题二:当c语言编出的程序不符合逻辑时,可能是底层的原因

#include <stdio.h>
​
int main(int argc, char *argv[])
{ 
    int val =255;
    
    int i;
    for( i = 0;i<64;i++)
    {
        
        printf("i = %d, val = %d\n",i,val>>i);
    }
​
​
    return 0;
} 

结果:在33位时,val的值又回到255了

i = 30, val = 0
i = 31, val = 0
i = 32, val = 255
i = 33, val = 127
i = 34, val = 63
i = 35, val = 31
i = 36, val = 15
i = 37, val = 7
i = 38, val = 3
i = 39, val = 1
i = 40, val = 0
i = 41, val = 0

原因:在汇编寄存器中,移位操作数只能装5位,val的二进制值为1111 1111 ;当循环到i=33,val=127;因为只能装5位,而32 = 10 0001,寄存器就会把高位的1丢掉变为0 0001;等价为只移动1位;即导致移动33位的val =127

2、ARM体系结构

课程安排:3天(基础理论+arm汇编指令)+4天(裸机编程)

课程特点:软硬结合,(硬件的基础知识,裸机编程,看芯片手册)

2.1、ARM简介

1)、ARM公司

分布:England;Us;Germany;Taiwan;France;Japen;Korea;

ARM产品线:1 、Applications(最高端待电时间长) 2、Real-Time Embedded(实时处理系统;中断更多 3、MCU&FPGA(智能玩具;单片机)如CH32中国公司

授权的厂商:T1(德国仪器)、Samsung(三星)、Freescale(飞思卡尔)、Marvell(马维尔)、Qualcomm(高通)、Nvidia(英伟达)

2)、ARM一系列芯片(RSCI)

ARM芯片体系结构
ARM体系ARMv4ARMv5ARMv6ARMv7
ARM CPUarm7arm9 arm10arm11arm-cortex-a8
流水线(条)3568
频率(MHZ)80150  260335667
MMU无/有
结构冯诺依曼哈佛结构

                   注意:不同ARM体系采用不同指令集

                   哈佛结构是数据和指令分开存储并行

                   冯诺依曼(普林斯顿)结构是混合存储

ARM系统硬件组成和运作原理

 

精简指令集RISC
低功耗
主流的产品线,A系列,R系列,M系列
 

3)、ARM技术

嵌入式:专用计算机系统

普通电脑:通用计算机系统

核心:芯片(ARM品牌芯片)

2.2、工作模式

模式简介
User非特权模式,大部分任务执行在这种模式
FIQ当一个高优先级(fast) 中断产生时将会进入这种模式
IRQ当一个低优先级(normal) 中断产生时将会进入这种模式
Supervisor当复位或软中断指令执行时将会进入这种模式
Abort当存取异常时将会进入这种模式
Undef当执行未定义指令时会进入这种模式
System使用和User模式相同寄存器集的特权模式

cortex-A特有模式

Monitor:是为了安全而扩展出的用于执行安全监控代码的模式,也是一种特权模式

2.3、寄存器

经典模型37个寄存器

1个用作PC(program counter)

一个用作CPSR(current program status register)

5个用作SPSR(saved program status registers)

30个通用寄存器

A系列:40(37+3)

R15(PC):程序计数器
R14(LR):链接寄存器:记录pc值,用于返回

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翠花是少女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值