顺丰的电话面试
- 程序的地址空间(栈, 段, 堆, 静态数据段, bbs段, 代码段(.code)), const变量保存在那个段中;
- static无论是全局变量还是局部变量都存储在全局/静态区域,在编译期就为其分配内存,在程序结束时释放;
- const全局变量存储在只读数据段,编译期最初将其保存在符号表中,第一次使用时为其分配内存,在程序结束时释放;
- 但const局部变量存储在栈中,代码块结束时释放;
- 全局变量存储在全局/静态区域,在编译期为其分配内存,在程序结束时释放;
- 局部变量存储在栈中,代码块结束时释放;
- 300k的程序怎么在256K的SRAM中运行;
- 分块拷贝, 但是涉及到一个问题是拷贝多少, 怎么拷贝, 拷贝到哪里?
- SPI的4种模式, 如果主从设备工作模式不一样怎么进行数据传输;
- 通过极性和相位控制;
- 高电平有效还是低电平有效;
- 第一个相位传输数据还是第二个相位传输数据;
- 时钟极性(CPOL)和时钟相位(CPHA)控制两个SPI设备间何时数据交换以及何时对接收到的数据进行采样;
- 模式1: CPOL = 0, CPHA = 0; 总线空闲时SCK为低电平, SPI在SCLK第一个边沿开始采样;
- 模式2: CPOL = 0, CPHA = 1; 总线空闲时SCK为低电平, SPI在SCLK第二个边沿开始采样;
- 模式3: CPOL = 1, CPHA = 0; 总线空闲时SCK为高电平, SPI在SCLK第一个边沿开始采样;
- 模式4: CPOL = 1, CPHA = 1; 总线空闲时SCK为高电平, SPI在SCLK第二个边沿开始采样;
- GPIO的开漏和推挽输出;
- 推挽输出:
- 推挽输出的结构是由两个三极管或者MOS管受到互补信号的控制,两个管子始终保持一个处于截止,另一个处于导通的状态;
- 推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力;
- 驱动能力,就是指输出电流的能力;
- 开漏输出:
- 开漏输出和推挽输出的区别最普遍的说法就是开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动;
- 开漏输出最主要的特性就是高电平没有驱动能力,需要借助外部上拉电阻才能真正输出高电平;
- 开漏输出的这一特性一个明显的优势就是可以很方便的调节输出的电平,因为输出电平完全由上拉电阻连接的电源电平决定;
- 所以在需要进行电平转换的地方,非常适合使用开漏输出;
- 开漏输出的这一特性另一个好处在于可以实现"线与"功能,所谓的"线与"指的是多个信号线直接连接在一起,只有当所有信号全部为高电平时,合在一起的总线为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。而推挽输出就不行,如果高电平和低电平连在一起,会出现电流倒灌,损坏器件;
- RT-Thread的内核调度机制;
- 优先级调度 + 时间片轮转;
- 优先级调度是基于位图的方式来做的;
posted @
2018-09-19 23:10
coding-for-self
阅读(
409)
评论()
编辑
收藏
举报