嵌入式系统对应用软件的开发和编程语言的选择提出了不同的要求。以下所考虑的一些因素说法错误的
A.通常嵌入式系统要求具有实时处理的能力,这种实时性主要是靠硬件层来体现的
B.通常嵌入式系统要求支持多任务,能够处理并发事件
C.嵌入式软件的开发需要交叉编译工具
D.电源能量的供应在嵌入式系统中是一项约束条件
A.通常嵌入式系统要求具有实时处理的能力,这种实时性主要是靠硬件层来体现的
B.通常嵌入式系统要求支持多任务,能够处理并发事件
C.嵌入式软件的开发需要交叉编译工具
D.电源能量的供应在嵌入式系统中是一项约束条件
● 嵌入式系统应用软件一般在宿主机上开发,在目标机上运行,因此需要一个(54) 环境。
(54)
A. 交互操作系统
B. 交叉编译
C. 交互平台
D. 分布式计算
A.在不可重新编程的储存器中使用嵌入式软彳牛
B.宜限制访问设计安全功能的软件
C.宜设置安全锁或授权人员的登陆密码
D.应设置"定向失效模式或关键件的加倍(冗余)设置
● 开发微型嵌入式应用系统,采用 (20)更合适。
(20)
A.C 语言或汇编语言
B.HTML或XML语言
C.脚本程序语言
D.C++或SQL语言
● 开发微型嵌入式应用系统,采用 (12)更合适。
(12)
A. C 语言或汇编语言
B. HTML或XML语言
C. 脚本程序语言
D. C++或SQL语言
试题五 (共15 分 )
阅读以下关于嵌入式C语言编程方面的问题,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式(Big-endian)、小端方式(Little-endian)的访问问题。
【 问题1 】(4 )
嵌入式系统中常要求用户对变量或寄存器进行位操作。下面的两个函数分别为设置和清除变量 a 的第 5位。请使用下面的宏定义 BIT5 按要求对变量 a 进行相应的处理。在函数set_bit5中,用位或赋值操作(=)设置变量a的第5位,在函数clear_bit5中,用位与赋值操作(&=)清除变量a的第5位。
define BIT5 (0x01<<5)
static int a;
void set_bit5(void)
{
① ; /* 设置变量a的第5位 */
}
void clear_bit5(void)
{
② ; /* 清除变量a的第5位 */
}
【 问题2】(5 分 )
图5-1所示代码的设计意图是计算1~100各数的平方。 该段代码运行后,没有得到应有的结果,请说明出错原因,将答案填入答题纸的对应栏内。
”
【问题3】(6分)
某嵌入式处理器工作在大端方式 (Big-endian)下, 其中unsigned int为32位, unsigned short为16位,unsigned char为8位。仔细阅读并分析下面的C 语言代码,写出其打印输出的结果,将答案填入答题纸的对应栏内。
include "stdio.h"
include "stdlib.h"
void *MEM_ADDR;
void mem_test(void)
{
unsigned int *pint_addr = NULL;
unsigned short *pshort_addr = NULL;
unsigned char *pchar_addr = NULL;
MEM_ADDR = (void *)malloc(sizeof(int));
pint_addr = (unsigned int *)MEM_ADDR;
pshort_addr = (unsigned short *)MEM_ADDR;
pchar_addr = (unsigned char *)MEM_ADDR;
*pint_addr = 0x12345678;
printf("0x%x, 0x%x\n", *pshort_addr, *pchar_addr);
/* 第一次输出 */
pshort_addr++;
*pshort_addr = 0x5555;
printf("0x%x, 0x%x\n", *pint_addr, *pchar_addr);
/* 第二次输出 */
pchar_addr++;
*pchar_addr = 0xAA;
printf("0x%x, 0x%x\n", *pint_addr, *pshort_addr);
/* 第三次输出 */
}