摘要:
将Linux 作为电子设备的软件开发和运行平台,这早已成为设备软件领域的热门话题,这的确可以为电子产品制造企业带来不少好处。然而,由于Linux一直都只能提供软实时(soft real-time)性能,而在汽车控制、工业控制、电信基础建设等诸多需要硬实时性能的应用中,都无法采用只有“软实时”能力的Linux,这就使得许多对时间较为敏感的应用都成为Linux难以涉入的禁地。 最近,美国风河系... 阅读全文
2008年2月28日
2007年4月18日
摘要:
c编译系统在对程序进行通常的编译之前,先进行预处理。c提供的预处理功能主要有以下三种:1)宏定义 2)文件包含 3)条件编译 1. 宏定义 不带参数的宏定义 用一个指定的标识符来代表一个字符串,形式:#define 标识符 字符串 几点说明: 1) 宏名一般用大写 2) 宏定义不作语法检查,只有在编译被宏展开后的源程序时才会报错 3) 宏定义不是c语句,不在行末加分号 4) 宏名有效范围为定义到本... 阅读全文
2007年4月6日
2007年3月22日
摘要:
1、移植的基本概念 移植是指将软件从一个平台迁移到另一个平台,包括以下几个方面: -- 从一个硬件平台移植到另一个硬件平台; -- 从一个操作系统移植到另一个操作系统; -- 从一种软件库环境移植到另一个软件库环境。2、Linux 硬件平台 在 Linux 内核里,每一个处理器指令集对应一个独立的体系结构(architecture),比如 alp... 阅读全文
2007年3月21日
摘要:
1,Linux设备驱动属于内核的一部分,Linux内核的一个模块可以以两种方式被编译和加载:(1)直接编译进Linux内核,随同Linux启动时加载;(2)编译成一个可加载和删除的模块,使用insmod加载(modprobe和insmod命令类似,但依赖于相关的配置文件),rmmod删除。 内存 在Linux内核模式下,我们不能使用用户态的malloc()和free()函数申请和释放内存。进行内... 阅读全文
2007年3月19日
摘要:
1。文件的创建和读写 我假设你已经知道了标准级的文件操作的各个函数(fopen,fread,fwrite等等).当然如果你不清楚的话也不要着急.我们讨论的系统级的文件操作实际上是为标准级文件操作服务的. 当我们需要打开一个文件进行读写操作的时候,我们可以使用系统调用函数open.使用完成以后我们调用另外一个close函数进行关闭操作. #include #include #inc... 阅读全文
2007年3月13日
摘要:
当前,ARM公司的32位RISC处理器,以其内核耗电少、成本低、功能强、特有16/32位双指令集,已成为移动通信、手持计算、多媒体数字消费 等嵌入式解决方案的RISC标准,市场占有率超过了75 %。多家公司都推出了自己的基于ARM内核的处理器产品,越来越多的开发人员开始了针对ARM平台的开发。通常开发人员需要购买芯片厂商或第三方提供的开 发板,还需要购买开发软件,如C编译器或者集成了实时操作系统... 阅读全文
摘要:
变量的声明与定义: A of a variable allocates storage for the variable and may also specify an initial value for the variable. There must be one and only one definition of a variable in a program. A declarati... 阅读全文
2007年3月9日
摘要:
In single-threaded processes there is only one flow of control. The code executed by these processes thus need not to be reentrant or thread-safe. In multi-threaded programs, the same functions and ... 阅读全文
2007年3月8日
摘要:
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放... 阅读全文
2007年3月7日
摘要:
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引... 阅读全文
摘要:
【标 题】:理解编译预处理【关键字】:【来 源】:http://www.cublog.cn/u/13991/showart.php?id=150533在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概... 阅读全文
摘要:
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更... 阅读全文
摘要:
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1 解答: int checkCPU( ) { { union w { int a; char b; } c; ... 阅读全文