奥比中光嵌入式面经
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); } }
反问