![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
文章平均质量分 90
猎羽
My name is feather!
展开
-
RTOS 基础入门与UCOSIII移植
早期操作系统什么是RTOS常见的RTOSRTOS核心实时内核前后台与RTOS优缺点UCOS可裁剪可剥夺型内核特点优点多任务能力UCOS学习方法多写代码遇到难点可以先去学会使用API再回来看看代码早期操作系统早期没有操作系统概念,一般分为前台程序和后台程序。例如51单片机。将一直循环的作为后台任务,中断作为前台程序。什么是RTOS?实时操作系统,又分为硬实时和软实时,硬实时:必原创 2015-12-13 20:15:05 · 1254 阅读 · 0 评论 -
Optimized Primitives 《ARM System Developer‘s Guide》Chapter-7
“primitive”是广泛使用于不同算法和程序的基础操作。例如,加减乘除,随机数的产生,这些都是“primitives”。一些primitives是由ARM指令集直接提供的—包括32bit的加,乘。但是,很多的primitives需要我们编写routines去实现它们,就如随机数的产生。本章节提供通常primitives的最优实现。前三节关于乘除。section7.1 着眼于精度扩展的乘法。sec原创 2016-02-07 17:55:51 · 507 阅读 · 0 评论 -
Chapter9-2.Interrupts 《ARM system developer's guide》
ARM处理器中一共有两种中断,第一种是由外设引发的中断-IRQ、FIQ。第二种是由特殊指令引发的中断-SWI instruction * 在本章我们主要讲解IRQ和FIQ中断,会包括如下内容: 1. Assigning interrupts 2. Interrupt latency 3. IRQ and FIQ exceptions 4. Basic interrupt原创 2016-01-11 12:08:15 · 531 阅读 · 0 评论 -
MMU(Memory Management Units) Chapter-14
为了创建多任务嵌入式系统,最简单的办法就是应用程序任务独立起来。如今大多数操作系统都使用操作系统,且其中高级的操作系统采用了基于硬件的内存管理单元(MMU)。MMU提供的核心内容之一就是组织任务(manage task)为运行在各自私有内存空间的独立程序。在这种操作系统中,任务不需要知道不相关任务的内存需求。在Chappter-13,我们介绍了MPU。其中,如果两个程序被编译的时候使用的地址重叠了,原创 2016-02-11 11:49:06 · 1950 阅读 · 0 评论 -
Digital Signal Processing 《ARM System developer’s Guide》Chapter-8
微处理器现在有足够的性能去处理实时的数字信号。你一定对MP3,数码相机和数字电话非常熟悉了。处理数字信号需要很高的memory bandwidths和fast multiply accumulate operations。在本章你将学会如何最大化ARM在DSP应用程序上的性能。传统的嵌入式设备上,包含了两种处理器。第一种是microcontroller用于处理用户接口,另一种是单独的DSP处理器,w原创 2016-02-14 18:25:31 · 693 阅读 · 0 评论 -
MPU(Memory Protection Units) 《ARM System Developer's Guide》Chapter-13
一些嵌入式系统都具有多任务的能力,在这些系统上会涉及到多个任务对于系统资源的使用,对这些系统资源的保护,也就是本章的主题。有两种方法控制对系统资源的访问。第一种是unprotected:这种系统依赖于软件层面对于资源的保护,没有专用的硬件监管内存和外设的使用。第二种是protected system:通过软件和硬件对系统资源进行保护,具有专用的硬件确认和限制对资源的访问。在这种系统中,任务行为需要符原创 2016-02-01 15:40:08 · 2549 阅读 · 0 评论 -
Chapter9-3.Interrupt handling schemes 《ARM system developer's guide》
Interrupt Handling Schemes1.Nonnested Interrupt Handling2.Nested Interrupt Handler 进行一次context转换需要清空IRQ栈(因为handler无法在IRQ栈有数据的时候执行context switch),所有保存在IRQ栈中的寄存器都需要被转移到任务的栈中,典型的是是在SVC stack。剩余的寄存器必须要被转原创 2016-01-15 10:21:19 · 655 阅读 · 0 评论 -
ARM 知识汇总
导读: 包含了ARM所有知识的大纲 一、ARM处理器基础点击这里进入链接1. 寄存器2. CPSR3. Pipeline4. 异常,中断与向量表5. 核心扩展 二、ARM 指令集数据处理指令点击这里进入Data Processing Instruction 包含move,arithmetic,logical,comparison,multiply instruction和barrel s原创 2015-12-29 22:37:15 · 967 阅读 · 0 评论 -
ARM指令集基础复习 s3c2440
1-ARM进行程序跳转的两种方法:分支跳转 B,BL(会先保存地址到链接寄存器),BX(能进行ARM和Thumb状态的切换)直接向PC寄存器赋值B跳转范围在+-32MB字节地址内 B 0X1234BL适合子程序调用,跳转前会将下一条指令地址保存在R14(LR)中2-数据处理指令有哪几类?具体?数据传送指令算术逻辑运算指令比较指令 数据处理指令只能对寄存器的内容进行操作,而不会能对内存原创 2016-02-21 15:59:00 · 535 阅读 · 0 评论 -
ARM伪指令详解
详细讲解了ARM伪指令的各方面知识转载 2016-02-22 08:51:59 · 1881 阅读 · 0 评论 -
Writing and Optimizing ARM Assembly Code 《ARM...》Chapter-6
为了获得更高的性能,可以使用手写的汇编代码来优化核心的部分。 手写汇编代码能给予你对三个优化工具的直接控制,而这些是C源代码无法提供的。 Instruction scheduling Register allocation Conditional execution 我们讲述的优化技巧是用于ARM汇编的,Thumb汇编没有特定的讲解,因为ARM汇编在32-bit bus上总原创 2016-02-05 17:29:20 · 746 阅读 · 0 评论 -
Caches 《ARM System Developer's Guide》chapter-12
本章节涉及名词:cache,write buffer,TCM,logical cache,physical cache,virtual cache,locality of reference,temporal locality,spatial locality,flush cache, clean cache本章摘录自《ARM System Develper’s Guide》第十二章,关于Cache原创 2016-01-28 10:22:12 · 1078 阅读 · 0 评论 -
异常和中断处理 ARM系统开发者指南 Chapter9-1
异常和中断处理简介在嵌入式系统中异常处理是核心之一。高效的处理能够极大的提升系统的性能。 ARM处理器一共有7种可以暂停指令的执行序列的异常。 本章节主要分为三个部分: 1. Exception handling 2. Interrupts 3. Interrupt handling schemes 本文介绍第一部分Exception Handling1.ARM Processor Ex原创 2016-01-10 10:07:02 · 936 阅读 · 0 评论 -
ARM(四) ARM指令集(下)
导读: 一共分为三部分: 第一部分:任务调度 第二部分:任务切换 Branch instructionA branch instruction changes the flow of execution or is used to call a routine. This instruction allows programs to have subroutines 讲解原创 2015-12-28 12:30:24 · 2521 阅读 · 0 评论 -
ARM PROCESSOR FUNDAMENTALS(arm处理器基础)
1-Registers寄存器2-CURRENT PROGRAM STATUS REGISTER-CPSR-2-1 banked register2-2 State and instruction sets2-3 INTERRUPT MASK2-4 CONDITION FLAGS2-5 CONDITIONAL EXECUTION3-PIPELINE3-1pipeline executi原创 2015-12-14 11:47:50 · 693 阅读 · 0 评论 -
Chapter10 Firmware 《ARM system developer's guide》
本章节讨论关于基于ARM的嵌入式系统的firmware。自从Firmware经常是在新平台上port和execute的第一段代码,Firmware就成为了任何嵌入式系统最重要的一部分。 本章将分为两部分: 1. 介绍firmware。本部分对firmware进行定义并且描述了两种流行的产业标准固件包:ARM Firmware Suite和Red Hats RedBoot。这些固件包是以通用原创 2016-01-17 14:37:56 · 750 阅读 · 0 评论 -
ARM(三) ISA介绍之Data Processing Instructions(数据运算指令)
前章知识复习ARM由8个部分组成-ALU,barrel shifter,MAC,address decoder, address register, register file,incrementer and sign extendARM具有3个指令集-ARM,Thumb,JazelleRegister file 包含了37个寄存器,只有17,18个寄存器在同一时间是可访问的—这取决于ARM所原创 2015-12-16 22:39:07 · 1357 阅读 · 0 评论 -
ARM(五) Thumb 指令集
导读: 本文包括了Thumb register usage, ARM-Thumb interworking, branch instructions, data processing, load-store instructions, stack operations and software interrupts. 一、简介Thumb将32Bit的ARM指令的子集译码成16Bit的指令原创 2015-12-31 17:42:35 · 2988 阅读 · 0 评论 -
嵌入式操作系统 《ARM System Developer's Guide》
本章包含两部分: 1. 讲述组成嵌入式操作系统的基础组件和关于ARM处理器的特殊问题 2. 通过简单的嵌入式操作系统Simple Little Operating System(SLOS) 来看看基础组件的实现Fundamental Components Components function Initialization 在firmware移交控制权后第一段执行的代码。用于设立内原创 2016-01-18 10:41:18 · 1709 阅读 · 0 评论 -
高效C编程(上) 基础数据类型,Loop,寄存器分配,函数调用,指针别名 ARM
导读: 本章是基于ARM讲述了如何在C编程中提高代码的效率。涉及到在局部变量中基础数据类型的使用。 1.基础C数据类型本文讲述了C编译器遇到的一系列问题,在理解这些问题的基础上,写出更快运行速度和更小的尺寸的代码。 C优化和编译概述为了写出高效C代码,我们需要关注3个方面。1:C编译器保守的代码部分 2:C编译器所依赖的处理器架构的限制 3:特定C编译器的限制本文大部分涉及到前2个方面:原创 2016-01-04 16:36:12 · 989 阅读 · 0 评论 -
高效ARM C编程(中)
一、结构体安排你在结构体上的布局安排对提升性能和代码密度有很重要的影响。在ARM的结构体上有2个主要的问题:第一种是alignment of the structure entries.第二种是结构体整体的大小。 ARM编译器会自动对齐结构体的开始地址,让其对齐结构体内最大尺寸的成员。例如:struct{ char a; int b; char c; short原创 2016-01-07 20:38:37 · 735 阅读 · 0 评论 -
高效 ARM C编程(下)
1.DivisonARM没有在硬件层面提供除法指令,而是在C库中通过软件的手段实现除法。 如下例子:offset = (offset + increment)%buffer_size;offset += increment;if(offset >= buffer_size){ offset -= buffer_size;}/*第一种形式使用了除法,需要消耗50个周期。而第二种形式却原创 2016-01-08 23:08:05 · 447 阅读 · 0 评论 -
arm-linux-gcc/ncurses的安装和使用,arm-linux-gcc: 没有那个文件或目录
安装arm-linux-gcc和ncurses的方法原创 2016-02-25 12:43:17 · 1667 阅读 · 0 评论