嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程
中,要求设置一绝对地址为 0x67a9的整型变量的值为 0xaa66。编译器是一个纯
粹的ANSI编译器。写代码去完成这一任务。
int *ptr;
ptr = (int *)0x67a9;
*ptr = 0xaa55;
嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程
中,要求设置一绝对地址为 0x67a9的整型变量的值为 0xaa66。编译器是一个纯
粹的ANSI编译器。写代码去完成这一任务。
int *ptr;
ptr = (int *)0x67a9;
*ptr = 0xaa55;
关键字 volatile 有什么含意 并给出三个不同的例子。
一个定义为volatile 的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下
面是volatile 变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一 个 中断 服 务子 程 序中 会 访问 到 的非 自 动变 量 (Non-automatic variables)
3). 多线程应用中被几个任务共享的变量
C 程序员和嵌入式系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用这些都要求volatile 变量。不懂得volatile 内容将会带来灾难。 (嗯,怀疑这否会是这样),我将稍微深究
一下,看一下这家伙是不是直正懂得volatile 完全的重要性。
1). 一个参数既可以是const 还可以是volatile 吗?解释为什么。
2). 一个指针可以是volatile 吗?解释为什么。
3). 下面的函数有什么错误: int square(volatile int *ptr)
{ return *ptr * *ptr;
}
Volatile
8. 关键字volatile 有什么含意并给出三个不
同的例子。
一个定义为volatile的变量是说这变量可能会
被意想不到地改变,这样,编译器就不会去假设这
个变量的值了。精确地说就是,优化器在用到这个
变量时必须每次都小心地重新读取这个变量的值,
而不是使用保存在寄存器里的备份。下面是volatile
变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一个中断服务子程序中会访问到的非自
动变量(Non-automatic variables)
3). 多线程应用中被几个任务共享的变量
回答不出这个问题的人是不会被雇佣的。我认
为这是区分C 程序员和嵌入式系统程序员的最基
本的问题。嵌入式系统程序员经常同硬件、中断、
RTOS等等打交道,所用这些都要求volatile变量。
不懂得volatile内容将会带来灾难。
假设被面试者正确地回答了这是问题(嗯,怀
疑这否会是这样),我将稍微深究一下,看一下这
家伙是不是直正懂得volatile完全的重要性。
1). 一个参数既可以是const 还可以是volatile
吗?解释为什么。
假设某计算机具有1MB的内存(目前使用的计算机往往具有64MB以上的内存),并按字节编址,为了能存取该内存各地址的内容,其地址寄存器至少需要二进制(86)位。为使4字节组成的字能从存储器中一次读出,要求存放在存储器中的字边界对齐,一个字的地址码应(87)。若存储周期为200ns,且每个周期可访问4字节,则该存储器带宽为(88)b/s。假如程序员可用的存储空间为4MB,则程序员所用的地址为(89),而真正访问内存的地址称为(90)。
A.10
B.16
C.20
D.32
A.10
B.16
C.20
D.32
假设某计算机具有1 MB的内存(目前使用的计算机往往具有128 MB以上的内存),并按字节编址,为了能存取该内存各地址的内容,其地址寄存器至少需要二进制(42)位。为了使4字节组成的字能从存储器中一次读出,要求存放在存储器中的字边界对齐,1字节的地址码应(43)。若存储器周期为200ns,且每个周期可访问4字节,则该存储器带宽为(44)b/s。假如程序员可用的存储空间为4MB,则程序员所用的地址为(45),而真正访问内存的地址称为(46)。
A.10
B.16
C.20
D.32
A.将所有支票上的收款人与支票登记簿上的名称相比较
B.将支票上的总金额与应付账款过帐数相比较
C.保证对应用程序的修改必须有文件记录、独立地测试及批准
D.要求定期更改所有系统的访问口令
A.将所有支票上的收款人与支票登记簿上的名称相比较
B. 将支票上的总金额与应付账款过帐数相比较
C. 保证对应用程序的修改必须有文件记录、独立地测试及批准
D. 要求定期更改所有系统的访问口令
A.10
B.16
C.20
D.32
嵌入式系统大多工作在为特定用户群设计的系统中,通常都具有低功耗、体积小、集成度高等特点。()
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!