byte、half-word、word的区别
来源:互联网 发布:警用手铐淘宝哪里有卖 编辑:程序博客网 时间:2024/05/24 03:11
向ARM看齐了,理解一下32位ARM和8/16位MCU 对于byte、half-word、word的区别
/*****************************************************
对字(Word)、半字(Half-Word)、字节(Byte)的概念说明如下:
字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。
半字(Half-Word):在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。
字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。
关于如何把这三个概念和code联系起来理解,我列举了两个操作系统的code,其中linux显然就是ARM体系结构的代表,而UC/OS-II则是8位/16位的代表。
第一个操作系统:linux-2.6.16
文件目录:
include\asm-arm\types.h
*******************************************************/
#ifndef __ASM_ARM_TYPES_H
#define __ASM_ARM_TYPES_H
#ifndef __ASSEMBLY__
typedef unsigned short umode_t;
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
#endif /* __ASSEMBLY__ */
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
#ifdef __KERNEL__
#define BITS_PER_LONG 32
#ifndef __ASSEMBLY__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
typedef u32 dma64_addr_t;
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */
#endif
//第二个操作系统:uc/os-II
//目录:OS_CPU.H
/*
*********************************************************************************************************
* DATA TYPES
* (Compiler Specific)
*********************************************************************************************************
*/
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U; /* Unsigned 8 bit quantity */
typedef signed char INT8S; /* Signed 8 bit quantity */
typedef unsigned int INT16U; /* Unsigned 16 bit quantity */
typedef signed int INT16S; /* Signed 16 bit quantity */
typedef unsigned long INT32U; /* Unsigned 32 bit quantity */
typedef signed long INT32S; /* Signed 32 bit quantity */
typedef float FP32; /* Single precision floating point */
typedef double FP64; /* Double precision floating point */
typedef unsigned int OS_STK; /* Each stack entry is 16-bit wide */
typedef unsigned short OS_CPU_SR; /* Define size of CPU status register (PSW = 16 bits) */
#define BYTE INT8S /* Define data types for backward compatibility ... */
#define UBYTE INT8U /* ... to uC/OS V1.xx. Not actually needed for ... */
#define WORD INT16S /* ... uC/OS-II. */
#define UWORD INT16U
#define LONG INT32S
#define ULONG INT32U
- byte、half-word、word的区别
- word/half-word/byte概念
- byte, half word等的定义
- bit,byte,half-word,word,dword的联系
- 对字(Word)、半字(Half-Word)、字节(Byte)的概念说明
- 对字(Word)、半字(Half-Word)、字节(Byte)的概念说明
- 字(Word)、半字(Half-Word)、字节(Byte)的概念
- 汇编byte ptr[BP]与word ptr[BX]的区别
- Bit,Byte,WORD,DWORD区别和联系
- Bit,Byte,WORD,DWORD区别和联系
- Bit、Byte、Word、DWord之间的关系
- word-wrap同break-word的区别
- word-wrap同break-word的区别
- word-wrap同word-break的区别
- word-wrap同word-break的区别
- word-wrap与word-break的区别
- word-wrap和word-break的区别
- word-wrap和word-break的区别
- expression 5+4*(7-15) or have parenthesis in any order // 波兰表示法
- 自组织网络对样本数据进行分类(转)
- Activity传递图片
- 函数指针
- Revit 二次开发 - 关闭当前文档
- byte、half-word、word的区别
- 工欲善其事必先利其器,工具之网络篇
- 免费开源解压缩软件7-Zip
- Windows线程基础
- 正则表达式基础实例
- 黑马程序员_java之银行业务调度系统(很重要)
- Matlab 如何截取视频中的每一帧图像
- 简易C++学生管理系统
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to ]