奥比中光嵌入式面经
8月30投递
9月4日一面:
自我介绍
介绍一下SPI IIC UART CAN的区别(因为项目里面有用到)
主要根据同步与异步分开陈述
SPI IIC同步
CAN UART异步
再对他们的时序简述一下
FreeRTOS移植过程
怎么移植的就怎么讲,主要是项目内容
C语言的结构体对齐
简单讲述一下,自己举了个例子
反问
9月14二面:
自我介绍
还是讲述一下一面几个通信协议的时序
CPU中断响应流程
很经典的问题,答出来了
volatile关键字的作用
防止编译器优化,有些变量会因为被频繁使用,编译器优化后不是在内存中取值,导致一些后果,balabala
下面这个结构体32位机对齐
typedef struct
{
char a;
int b;
char c:2;
}x_str;
改一下,再来一个
typedef struct
{
short a:7;
int b;
char c;
}x_str;
冒号差点错了,不过大体上没啥问题
看程序,哪里有错
char * getName(int id)
{
struct city
{
int id;
char name[8];
};
struct city data[3]={{0,"Beijing"},{1,"Nanning"},{2,"Shenzhen"}};
for (int i = 0; i <= 3; i++)
{
if (id == data[i].id)
return datal[i].name.
}
return NULL;
}
int main(int argc, char *argv[])
{
char *p ="Unknown City";
char *q = NULL;
for (int i = 0, i <= 3; i++)
{
q = getName(i);
p = malloc(strlen(q));
strcpy(p,q);
}
}
反问

