搜索
bottom↓
回复: 0

高效实时操作系原理以及实践-raw os 的基本数据类型

[复制链接]

出0入0汤圆

发表于 2013-11-3 18:03:46 | 显示全部楼层 |阅读模式
raw os 的基本数据类型


基本数据类型是每一个跨平台的软件设计所必须要考虑到的,基本数据类型的目的主要是为了可以移植性。比如,如何写出windows上和linux下共同能编译运行的代码呢?除了使用标准的c语言外,基本数据类型是必须要考虑到的不可缺的因素。

所以跨平台的软件需要考虑跨编译器的移植,还有需要考虑到64位编译器的兼容性。

raw os的基本类型数据定义在raw_type.h。具体数据类型如下:

1  RAW_S8              有符号的单字节类型。
2  RAW_BOOLEAN         boolean数据
3  RAW_U8              无符号的单字节类型
4  RAW_U16             无符号的双字节类型
5  RAW_S16             有符号的双字节类型
6  RAW_U32             无符号的4字节类型
7  RAW_S32             有符号的4字节类型
8  RAW_S64             有符号的8字节类型
9  RAW_U64             无符号的8字节类型
10 PORT_STACK          栈元素的基本数据类型
11 RAW_PROCESSOR_INT   处理器的有符号的最大宽度
12 RAW_PROCESSOR_UINT  处理器的无符号的最大宽度

以上的基本类型数据需要在不同的编译器里重新定义,来达到移植的目的。

需要说明的是RAW_PROCESSOR_INT和RAW_PROCESSOR_UINT,RAW_PROCESSOR_INT 在32位的处理器上是有符号的4字节类型,RAW_PROCESSOR_UINT在32位的处理器上是无符号的4字节类型。在64位的处理器上,RAW_PROCESSOR_INT和RAW_PROCESSOR_UINT分别是8字节的有符号数和无符号数类型。

为了全面兼容64位的处理器,raw os 还有一个内部定义的数据类型,主要定义在raw_internal_type.h中。具体涉及的数据类型如下:

RAW_INTERNAL_NO_WAIT
RAW_INTERNAL_WAIT_FOREVER
RAW_TICK_TYPE
MSG_SIZE_TYPE

这些定义类型在32位处理器中是不需要去修改的,只有到了64位处理器才有必要去修改。

举例说明如下:

#define         RAW_INTERNAL_WAIT_FOREVER 0xffffffffu /*32 bit value, if RAW_TICK_TYPE is 64 bit, you need change it to 64 bit*/

上面定义的是在32位平台下的值。如果是64位平台下的话,这个值会定义为:

#define         RAW_INTERNAL_WAIT_FOREVER 0xffffffffffffffffu
       
又如以下是32位平台下定义的值:
typedef RAW_U32 RAW_TICK_TYPE;  /*32 bit or 64 bit unsigned value*/

64位平台下定义的值是:
typedef RAW_U64 RAW_TICK_TYPE;  /*32 bit or 64 bit unsigned value*/


又如以下类型定义:

typedef RAW_U8  TASK_0_EVENT_TYPE; /*8 bit ,16 bit or 32 bit unsigned value*/
typedef RAW_U32 MSG_SIZE_TYPE; /*32 bit or 64 bit unsigned value*/


以上定义主要是为了程序数据量的可拓展性,经过加了一层define, 可以使得用户自定义的数据类型得到充分扩展,非常的灵活。


综上所述,设计跨平台的软件,基本数据类型的设计好坏,是对整个软件架构举足轻重的,不但要考虑到跨平台的移植,也需要考虑到64位平台的兼容。


raw os 官网地址为:www.raw-os.org

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 09:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表