OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 596|回复: 1

求助:嵌入式操作系统笔试题

[复制链接]

  离线 

2

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
26
金钱
26
注册时间
2016-1-30
在线时间
5 小时
发表于 2016-9-22 23:52:36 | 显示全部楼层 |阅读模式
正点原子公众号
请问哪位大神会做
一.编程基础
1.      有如下CAT_s结构体定义,回答:
1)        在一台64位的机器上,使用32位编译,Garfield变量占用多少内存空间?64位编译又是如何?(总分5分)
2)        使用32位编译情况下,给出一种判断所使用机器大小端的方法。(总分5分)
struct CAT_s{
int ld;
char Color;
unsigned short Age;
char *Name;
void(*Jump)(void);
}Garfield;
2.      描述下面XXX这个宏的作用。(总分10分)
#define offsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)
#define XXX(ptr,type,member({\
consttypeof(((type*)0)->member)*__mptr=(ptr);\
(type*)(char*)__mptr –offsetof(type,member));})
3.      简述C函数:1)参数如何传递(__cdecl调用方式);2)返回值如何传递;3)调用后如何
返回到调用前的下一条指令执行。(总分10分)
4.      在一个多任务嵌入式系统中,有一个CPU可直接寻址的32位寄存器REGn,地址为
0x1F000010,编写一个安全的函数,将寄存器REGn的指定位反转(要求保持其他bit的值不变)。(总分10分)
5.      有10000个正整数,每个数的取值范围均在1到1000之间,变成找出从小到大排在第

3400(从0开始算起)的那个数,将此数的值返回,要求不使用排序实现。(总分10分)


回复

使用道具 举报

  离线 

48

主题

535

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1271
金钱
1271
注册时间
2014-2-13
在线时间
126 小时
发表于 2016-9-23 08:23:40 | 显示全部楼层
1、⑴32位机是4字节对齐,64位机8字节对齐
⑵笨办法有,高明的方法忘了,给定一个已知大小的4字节数,然后取字节比较大小。
2、很恶心的一道题,违背了编程的原则
3、不知道是不是很是和单片机一样考虑(应该是一样的),传参是先寄存器,参数太多寄存器不够是再用堆栈。
4、位操作,简单。
5、。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-22 03:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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