`
dato0123
  • 浏览: 939980 次
文章分类
社区版块
存档分类
最新评论

CPU类型和宏定义

 
阅读更多
//========================================================================
//TITLE:
// CPU类型和宏定义
//AUTHOR:
// norains
//DATE:
// Saturday 18-August-2007
//Environment:
// EVC4.0 + Windows CE 5.0 Standard SDK
// EVC4.0 + Windows CE 4.2 Standard SDK
//========================================================================
相信很多人都有这么一个经历,想宏定义某一个值,而这个值随着编译器选择的CPU不同而有所不同,但却苦于文档中没有关于CPU宏的说明.所以很多朋友的做法往往做法是自定以多个宏用来区分CPU的类型.其实大可不必,编译器在CPU不同时确实定义了相应的宏,只不过这个在文档中没有说明而已.

CPU Type Macro
x86 _X86_
mips _MIPS_
arm _ARM_
sh3 _SH3_


根据不同的CPU定义不同的宏数值,代码可如此书写:

#ifdef _X86_
#define REG_NUM 8
#endif

#ifdef _MIPS_
#define REG_NUM 12
#endif


其实最为实用的,还是根据不同的CPU类型选择不同的lib库链接,例如:

#ifdef _X86_
#pragma comment (lib,".//lib//X86em//Strmiids.lib")
#endif

#ifdef _MIPS_
#pragma comment (lib,".//lib//MIPSII//Strmiids.lib")
#endif
分享到:
评论

相关推荐

    VxWork设备驱动程序设计之宏定义优化.rar_VXWORK ARM_VxWork 设备 驱动_vxwork _vxwork

    4. **错误检查**:通过宏定义,可以实现编译时的错误检查,例如,确保函数参数的类型和数量正确。 5. **提高性能**:某些情况下,宏定义可以避免函数调用的开销,提高执行速度。例如,简单的操作可以直接在宏中完成...

    S3C2440所有寄存器宏定义

    本文档将详细介绍S3C2440处理器中涉及到的所有寄存器宏定义及其功能,帮助开发者更好地理解和编写ARM程序。S3C2440是一款基于ARM920T内核的微处理器,广泛应用于嵌入式系统中。为了方便地访问和控制S3C2440内部的...

    易嵌入汇编(取CPU类型).7z

    "易嵌入汇编(取CPU类型)"的主题着重于如何通过汇编语言来识别和处理不同的CPU类型。汇编语言的使用场景通常包括系统级编程、设备驱动开发、性能敏感的应用以及对硬件资源进行直接操作的情况。 汇编语言的基本结构...

    LWIP配置相关的宏

    LWIP提供了内存池管理机制,通过使用MEMP_NUM_PBUF和MEMP_NUM_RAW_PCB等宏定义,可以配置不同类型的内存池大小,这些内存池通常用于优化内存使用和提高性能。 最后,LWIP还提供了多种可选功能,例如支持RAW协议栈、...

    微机原理与接口技术课件:第4章_2过程定义伪指令PROC、ENDP.ppt

    微机原理与接口技术课件:过程定义伪指令PROC、ENDP ...本节课件讲解了微机原理与接口技术中的过程定义伪指令PROC、ENDP,宏定义伪指令,宏调用和宏展开等概念,并对比了宏命令伪指令和过程调用的差别。

    C语言嵌入式系统编程修炼(性能优化)

    这个宏定义接受两个参数`A`和`B`,并返回它们之间的较小值。这里使用了三元运算符来实现条件判断,相比于传统的函数调用,这种方式避免了函数调用所带来的额外开销。 #### 注意事项 虽然宏定义在性能上有所优势,...

    使用IAR如何修改STM8S库

    首先,选择CPU类型是修改STM8S库的第一步。STM8S系列支持多种设备,开发者需要根据实际使用的微控制器型号来选择对应的宏定义。例如,如果使用的是STM8S105系列微控制器,那么需要在项目中定义STM8S105宏。这一步...

    OS_CPU.rar_os_cup.h

    在将UCOS移植到ARM9的过程中,"os_cpu.h"扮演了桥梁的角色,它包含了与CPU相关的数据类型定义、函数声明以及特定于ARM9的宏定义。 1. 数据类型定义:"os_cpu.h"通常会定义一些与硬件相关的数据类型,如任务堆栈指针...

    重点linux源码分析.pdf

    总而言之,《重点Linux源码分析》深入探讨了Linux内核源码中使用的GNU C语言扩展和编程技巧,包括内联函数、数据类型、属性描述符以及宏定义的使用,这些都是理解和分析Linux内核的关键知识点。通过学习这些内容,...

    ucos2_中文版 第12章.pdf

    表格中的“类型”指的是函数所归属的类别,如中断处理、消息邮箱、消息队列、信号量管理、任务管理、内存块管理、时钟管理、用户定义函数和CPU钩子函数等。在“置1”一栏中,标记为1的宏定义表示当相应的宏被定义为1...

    linux源码分析之cpu初始化 kernel/head.s

    进入head.s,我们看到一系列汇编指令,首先通过__INIT宏定义,将代码放入.init.text段,这个段包含可执行指令和已分配数据。ENTRY(stext)宏定义了一个全局标签stext,并进行了对齐操作,接着就是实际的CPU初始化过程...

    FreeRTOS操作系统配置参数说明.pdf

    这些宏定义参数的配置将对FreeRTOS操作系统的性能和稳定性产生重要影响,因此需要根据实际情况进行配置。 五、FreeRTOS操作系统的缺省设置 FreeRTOS操作系统的缺省设置包括: 1. 系统时钟节拍频率为1000Hz。 2. ...

    江西农大《汇编语言》期末复习(部分含答案).pdf

    江西农业大学的汇编语言期末复习资料涉及了诸多关于汇编语言的核心知识点,包括寻址方式、寄存器操作、指令执行、宏定义以及分支程序编写等方面,以下是一些详细知识点: 1、寻址方式与物理地址计算 汇编语言中寻址...

    8051宏汇编器 Masm51

    2. **伪指令支持**:汇编器提供了一系列的伪指令,如ORG(组织内存位置)、EQU(定义等价符号)、DB(定义字节)、DW(定义字)等,这些伪指令可以简化编程,方便内存布局和代码结构管理。 3. **错误检查与调试**:...

    操作系统设计与实现讲义

    Minix的公共头文件组织考虑了硬件环境(如CPU和设备驱动的宏定义)、编译环境(遵循ANSI和POSIX标准)、操作系统实现(基本数据类型和系统限制)以及应用需求(可移植性和配置接口)。通过这些头文件,Minix能够适应...

    EPLAN P8 S7-300部件宏

    "S7-300部件宏"特指针对西门子S7-300系列PLC(可编程逻辑控制器)的宏定义。S7-300是西门子推出的一种模块化中型PLC系统,适用于广泛的自动化任务。在EPLAN P8中,这些宏包含了与S7-300相关的各种组件,如: 1. **...

    c语言学习-第六章PPT文档.pptx

    预处理指令`#include`用于引入头文件,头文件通常包含函数声明和宏定义,确保编译器知道如何处理库函数的调用。 理解并掌握这些概念对于编写有效的C程序至关重要。函数的正确使用可以提高代码的可读性和复用性,而...

    os_cpu.rar_ucos ii XC166_xc uc

    os_cpu.h是UCOSII中与CPU相关的核心头文件,它定义了与特定CPU架构相关的函数原型、数据类型和宏定义。在移植过程中,这个文件的修改至关重要,因为它直接影响到UCOSII能否正确地与目标CPU交互。 1. **中断处理**:...

    linux-cpu.rar_V2

    这通常通过内核模块参数机制实现,例如使用`module_param()`宏定义参数,并在模块初始化或卸载时处理这些参数。 在Linux 2.13.6这个版本中,这样的功能可能对服务器环境特别有价值,因为管理员可以根据实际工作负载...

Global site tag (gtag.js) - Google Analytics