首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux64程序移植

要获得能在64系统下运行的程序,特别是达到只维护同一套代码就能获得在32及64系统下都能运行的程序,编码时需遵循一定的原则,是一个较为繁琐的过程。...编译器按照自然边界对数据类型进行对齐;换而言之,32的数据类型在64系统上要按照32边界进行对齐,而64的数据类型在64系统上则要按照64边界进行对齐。...2.2 数据对齐 默认情况下,编译器按照自然边界对数据类型进行对齐;换而言之,32的数据类型在64系统上要按照32边界进行对齐,而64的数据类型在64系统上则要按照64边界进行对齐。...test { int i1; 32 32 32填充 double d; 64 64 int i2; 32 32 32填充 long l; 32 64 }; 结构大小为20...3 运营环境 修改脚本支持64环境 一些数据需要用64程序重新生成,供程序使用 4 总结 主流的硬件供应商最近都在扩充自己的64产品,这是因为64平台可以提供更好的性能和可伸缩性。

4.4K81
您找到你想要的搜索结果了吗?
是的
没有找到

嵌入式ARM定时器

PWM技术实现简单DA转换 PWM简单的实现原理 S3C2410的PWM的实现原理 死区控制 PWM定时器控制寄存器 PWM应用举例 S3C2410A的PWM定时器 定时器概述 S3C2410有5个16定时器...PWM定时器有: 5个16定时器 2个8预分频器,2个4除法器。...波形可编程(PWM) 自动重装或短脉冲模式(One-shot Pulse Mode) 死区发生器 定时器工作原理 每个定时器都有自己的16减法计数器,该计数器由定时器时钟(来自于时钟除法器或外部时钟...定时器操作 预分频器和除法器 1个8预分频器和1个4除法器在PCLK为50MHz时所能产生的信号频率如下表所示: 开启一个定时器的步骤 向TCNTBn和TCMPBn中写入初始值。...设置相关定时器的手动更新。 设置相关定时器的开始启动定时器(同时,清除手动更新)。

79240

嵌入式ARM的异常管理

ARM体系结构中,异常中断用来处理软件中断、未定义指令陷阱及系统复位功能和外部事件,这些“不正常”事件都被划归“异常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。...ARM的异常中断响应过程 ARM处理器对异常中断的响应过程如下 将CPSR的内容保存到将要执行的异常中断对应的SPSR中 设置当前状态寄存器CPSR中的相应 将引起异常指令的下一条指令的地址保存到新的异常工作模式的...将SPSR_mode寄存器内容复制到CPSR中,使得CPSR从相应的SPSR中恢复,即恢复被中断的程序工作状态; 根据异常类型将PC变回到用户指令流中相应指令处 最后清除CPSR中的中断禁止标志I/...异常中断的优先级 当几个异常中断同时发生时,在ARM中通过给各异常中断赋予一定的优先级来实现处理次序。...参考文献: 孟祥莲.嵌入式系统原理及应用教程(第2版)[M].北京:清华大学出版社,2017.

70410

嵌入式】基于ARM嵌入式Linux开发总结

前言 嵌入式知识点复习一 嵌入式知识点复习二 –体系结构 嵌入式知识点复习三 –ARM-LINUX嵌入式开发环境 嵌入式知识点复习四 –arm-linux文件编程 嵌入式知识点复习五 –arm-linux...设计高性能、低功耗的嵌入式处理器。 2、ARM微处理器工作状态:两种指令对应两种状态(通常情况) (1)Thumb状态、ARM状态; (2)32定长ARM指令,16定长Thumb指令。...5、寄存器: (1)ARM处理器均为32寄存器; (2)ARM1176寄存器数量:40个 (3)ARM1176寄存器包括:未分组寄存器、分组寄存器、CPSR、SPSR; (4)未分组寄存器(所有模式通用...、低功耗、低成本、高性能; ② 支持Thumb(16)/ARM(32)双指令集,能很好地兼容8/16器件; ③ 大量使用寄存器,指令执行速度更快; ④ 大多数数据操作都在寄存器中完成;...⑤ 实验室使用的OK6410开发板定制的编译器为32的,其交叉编译工具链主要arm-linux-gcc,arm-linux-g++arm-linux-gdb等构成。

18.1K20

嵌入式ARM嵌入式系统开发流程概述

文章目录 嵌入式开发的具体过程 开发流程图 嵌入式软件开发环境 交叉开发环境 远程调试结构图 嵌入式应用软件开发的基本流程 软件模拟环境 目标板与评估板 嵌入式软件开发的可移植性和可重用性 嵌入式开发的具体过程...系统定义与需求分析阶段 方案设计阶段 详细设计阶段 软硬件集成测试阶段 系统功能性能测试及可靠性测试阶段 开发流程图 嵌入式软件开发环境 嵌入式开发环境组成 交叉开发环境 软件模拟环境 目标板与评估板...交叉开发环境 嵌入式系统应用软件的开发属于跨平台开发,因此需要一个交叉开发环境。...嵌入式软件开发的可移植性和可重用性 在嵌入式软件的开发过程中,在确保软件的正确性、实时性的前提下,必须关注软件的可移植性和可重用性。 可移植性和可重用性的程度应该根据实际的应用情况来考虑。...因为嵌入式应用软件有自身的许多特点。追求过高的可移植性和可重用性可能会恶化应用软件的实时性能和增加软件的代码量,这对于资源有限的嵌入式应用环境是得不偿失的。

1.6K10

嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 :  -- ARM 芯片类型 : 6410, 2440, 210; -- ARM 核类型 : arm11, arm9,...ARM 演化变迁 (1) 经典阵营 发展历程 : ARM7 --> ARM9 --> ARM11, ARM11 性能最高, ARM7 性能最低; (2) Cortex 阵营 Cortext 系列 : ...SPRS_xxx 寄存器中, 如当前在 scv 模式中断, 将状态寄存器保存到 SPSR_svc 寄存器中, 中断执行完后, 将状态从 SPSR_svc 中写回到 CPRS 寄存器中; (2) CPSR 寄存器简介...CRSR 寄存器简介 :  -- 图示 :  -- N : 两个数a 和 b比较, 即做减法 (a-b), 如果 a = b, 减法结果是正数或...0, N = 0;  -- Z : 两个数进行比较, 只有两个数相等时 Z = 1; -- I : I = 1 时不能产生中断; -- F : F = 1 时不能产生快速中断; -- M

1.8K30

嵌入式ARM转移指令(分支指令)

二进制编码 跳转目标地址的计算方法:先对指令中定义的有符号的24转移量用符号扩展为32,并将该32左移2形成字的偏移,然后将它加到程序计数器PC中(相加前程序计数器的内容为转移指令地址加8字节...转移交换和转移链接交换(BX,BLX) 这些指令用于支持Thumb(16)指令集的ARM芯片,程序可以通过这些指令完成处理器从ARM状态到Thumb状态的切换。...类似的Thumb指令可以使处理器切换回32ARM指令。 在第一种格式中,寄存器Rm的值是转移目标,Rm的第0拷贝到CPSR中的T,进而决定是切换到Thumb状态还是ARM状态。...ARM的状态寄存器CPSR中的状态控制T-bit([5])决定了当前处理器的运行状态,因此,可以通过MSR和MRS指令来直接修改CPSR的状态,也能够改变处理器运行状态 但由于ARM采用多级流水线的结构...…… ;执行其它代码 CODE32 ;表明以下是ARM指令 Back_to_ARM: ;ARM代码段起始地址 参考文献: 孟祥莲.嵌入式系统原理及应用教程

88620

嵌入式ARM体系结构详解

文章目录 指令集与指令集架构 主要计算机指令集架构 PC及服务器领域 嵌入式领域 新生代 ARM体系结构的演变 ARM发展的历程 指令集与指令集架构 指令:就是指挥计算机工作的命令,程序就是一系列按一定顺序排列的指令...指令集架构可以理解为一个抽象层,如下图所示: 主要计算机指令集架构 PC及服务器领域 Intel: x86—CISC SUN: Sparc —-RISC IBM等:Power — RISC 嵌入式领域...版本2 ,该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32乘法指令和协处理器指令的支持。...版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。 同样为26寻址空间,寻址空间仍为:64MB。现在已经废弃不再使用。...同时还包括了NEON™技术的扩展提高DSP和多媒体处理吞吐量400% ,并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要。

95720

嵌入式ARM设计编程(四) ARM启动过程控制

或者公众号【AIShareLab】回复 嵌入式 也可获取。...一、实验目的 (1) 掌握建立基本完整的ARM 工程,包含启动代码,C语言程序等; (2) 了解ARM启动过程,学会编写简单的C 语言程序和汇编启动代码并进行调试; (3) 掌握如何指定代码入口地址与入口点...IMPORT伪操作来声明该c程序 area Init,code,readonly ;定义CODE片段Init 只读 entry ;设置程序入口伪指令 code32 ;以下为32的...EXPORT伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用 area delay,code,readonly ;定义code片段delay只读 code32 ;以下为32的...此外,还有ARM程序和Thumb程序中子程序调用的基本规则ATPCS(ARM-Thumb Produce Call Standard),目的是为了使单独编译的C语言程序和汇编程序之间能够相互调用。

1.4K20

嵌入式ARM常用开发编译软件介绍

ARM 编译器介绍 1、ADS1.2 ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。...处理器:ARM7 TM , ARM9 TM , ARM9E TM , ARM10 TM , ARM11 TM 和 Cortex TM RealView Trace 主要特性: 非插入式的实时指令跟踪与数据跟踪...,跟踪频率可高达 250MHZ ,高达 8 百万帧深度的跟踪缓冲区(高达 4 百万帧深度的 time stamp 缓冲区) 48 time stamp , 10 纳秒分辨率,支持最长连续 32 天数据跟踪...近年来,Keil公司也将自己的领域扩展到了ARM的开发工具,即:keil arm,再后来keil真的被arm收购了,他的arm开发工具这一块就是现在的MDK系列。...参考文献: 孟祥莲.嵌入式系统原理及应用教程(第2版)[M].北京:清华大学出版社,2017.

1.7K30

嵌入式ARM相关开发工具概述

JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。...使其深受国内嵌入式开发工程师的喜爱。 目前,ULINK已经停产,新用户推荐选择ULINK2或ULINKPro仿真器。...ADS1.2集成开发环境 基于Windows操作系统平台的ARM ADS(ARM Developer Suite)软件下进行的,该软件是由ARM公司提供的专门用于ARM 处理器应用开发和调试的综合性工具软件...使用ADS创建工程 ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件; ARM Object Library:用于由ARM 指令的代码生成一个armar...参考文献: 孟祥莲.嵌入式系统原理及应用教程(第2版)[M].北京:清华大学出版社,2017.

1.6K30

嵌入式ARM最小系统设计详解

所有要输入到特定寄存器的数据都是通过 TDI 接口一串行输入的(由 TCK驱动) 。TDI在 IEEE 1149.1 标准里是强制要求的。...所有要从特定的寄存器中输出的数据都是通过 TDO接口一串行输出的(由 TCK驱动) 。TDO在 IEEE 1149.1 标准里是强制要求的。...交换 所有flash器件都受交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特会发生反转或被报告反转了。...在实际的系统中,可以根据需要选择ARM处理器与Nor Flash的连接方式。下图给出了嵌入式最小系统在包含两块Nor Flash的情况下,ARM处理器与Nor Flash两种不同的连接方式。...该架构是当前嵌入式系统中运用最广泛的启动架构之一。

1.2K70

嵌入式ARM内嵌汇编及C和ARM汇编相互调用

armcc和armcpp内嵌汇编器支持完整的ARM指令集;tcc和tcpp用于Thumb指集。但是内嵌汇编器并不支持诸如直接修改PC实现跳转的底层功能。...内嵌的汇编指令包括大部分的ARM指令和Thumb指令,但是不能直接引用C的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。...内嵌汇编指令的语法格式 __asm(“指令[;指令]”); ARM C汇编器使用关键字“__asm"。如果有多条汇编指令需要嵌入,可以用“{}”将它们归为一条语句。...汇编程序间相互调用 在C和ARM汇编程序之间相互调用必须遵守ATPCS(ARM-Thumb Procedure Call Standard)规则。...cFun END /*C file, called by asmfile */ int cFun(int a, int b, int c) { return a + b + c; 参考文献: 孟祥莲.嵌入式系统原理及应用教程

1K20

嵌入式ARM的流水线技术

三级流水线ARM的组织 ARM的3级流水线介绍 到ARM7为止的ARM处理器使用的简单3级流水线分别为 取指级 :读取指令。 译码级 :对指令进行译码。占有“译码逻辑”,不占有“数据路径”。...并根据需求更改状态寄存器的条件。...进一步减少CPI 要改进CPI,必须增加指令存储器的带宽,ARM10TDMI采用64存储器结构来解决存储器的瓶颈问题。 采用转移预测逻辑。可以把时钟频率提高,达到每一时钟周期取2条指令。...采用64数据存储器。这样,允许在每个时钟周期传送2个寄存器的指令存取。ARM10TDMI的寄存器组具有4个读端口和3个写端口。...参考文献: 孟祥莲.嵌入式系统原理及应用教程(第2版)[M].北京:清华大学出版社,2017.

91640

嵌入式ARM符号定义伪操作详解

文章目录 ARM汇编语言的伪操作、宏指令与伪指令 两种编译模式的集成开发环境IDE介绍 ADS/SDT IDE开发环境 集成了GNU开发工具的IDE开发环境 ADS编译环境下的ARM伪操作和宏指令 符号定义伪操作...GBLA,GBLL及GBLS 语法格式 使用示例 LCLA,LCLL及LCLS 语法格式 使用示例 SETA,SETL及SETS 语法格式 寄存器列表定义伪指令RLIST ARM汇编语言的伪操作、宏指令与伪指令...ARM汇编语言源程序中语句一般由指令、伪操作、宏指令和伪指令组成 伪操作是ARM汇编语言程序里的一些特殊指令助记符,它的作用主要是为完成汇编程序做各种准备工作,在源程序进行汇编时由汇编程序处理,而不是在计算机运行期间由机器执行...伪指令也是ARM汇编语言程序里的特殊指令助记符,也不在处理器运行期间由机器执行,它们在汇编时将被合适的机器指令代替成ARM或Thumb指令,从而实现真正指令操作。..., reglist ; 将列表reglist存储到堆栈中 … LDMIA R4, reglist ; 将列表reglist加载到R4中 参考文献: 孟祥莲.嵌入式系统原理及应用教程(第

49820
领券