嵌入式面经-凉凉

1.Linux多线程:在一个线程访问某个外设驱动时,怎么防止其他线程访问。
2.采用DMA方式进行串口通信,如何解析数据才能提高吞吐量。
3.内联函数的缺点是什么,
4.是否做过i2c从机设备开发.
5.异步i2c有接触过吗?
6.看门狗:多线程情况下如何喂狗。

基本全军覆没,被爆扣。。,,
全部评论
在Linux多线程环境下,可以使用锁(Mutex)来控制线程之间对外设的访问。在一个线程正在访问外设时,需要加锁,以防止其他线程同时访问。一般情况下,操作外设的线程会在访问完成之后释放锁,其他线程通过判断锁的状态来确定是否可以访问外设。 采用DMA方式进行串口通信时,需要解析接收到的数据。一种提高串口通信吞吐量的方法是,将数据存储到一个缓冲区中,然后使用 DMA 进行批量传输。此外,还可以通过设置适当的接收超时时间和校验机制等来提高串口通信的可靠性和稳定性。 内联函数的缺点主要有两个:一是会增加代码的体积,因为每次调用内联函数都会把函数体复制到调用处;二是可能影响代码的执行效率,因为内联函数的本质是把函数体直接嵌入到调用处,这样会导致代码的大小增加,从而可能导致缓存命中率下降,影响执行效率。 做过 异步I2C是指在I2C总线上使用异步通信的方式进行数据传输。它与标准的同步通信方式相比,可以提高通信的效率和稳定性,但是也需要特殊的硬件支持和软件实现方法。在异步I2C中,主设备和从设备都需要在一段时间内保持总线的空闲状态,否则可能导致通信失败。 在多线程环境下使用看门狗时,需要在每个线程中定义一个计数器,表示该线程的运行状态。当计数器达到指定值时,需要向看门狗发送喂狗信号,以避免看门狗误判程序出现错误而强制重启系统。在实际应用中,可以使用定时器或信号量等机制来完成喂***作。同时,为了确保程序的稳定性,需要合理地设置看门狗的超时时间,并在程序出现问题时及时报错或重启系统。
17 回复
分享
发布于 06-13 09:00 广西
这也太难了吧
3 回复
分享
发布于 05-26 16:47 广东
第一个加锁?使用信号?
2 回复
分享
发布于 05-26 17:47 重庆
只会3个。
2 回复
分享
发布于 05-26 20:49 广东
第二题怎么写,我怎么一个都不会啊
1 回复
分享
发布于 05-26 18:32 广东
我靠 这么难
1 回复
分享
发布于 05-27 00:30 江西
哪家
点赞 回复
分享
发布于 05-26 17:15 上海
第二题是不是加个池子 存储数据的;然后dma搬过来的数据一直往池子里面放,你这边一直从池子里面取;就等池子爆了或者空了做等待
点赞 回复
分享
发布于 05-29 12:17 上海
完了,只有第一个能回答出来
点赞 回复
分享
发布于 06-20 15:20 湖南
除了多线程如何喂狗我都有答案,在CSAPP那本书都有的。多线程喂狗麻烦点
点赞 回复
分享
发布于 07-02 01:29 广东
不懂就问,IIC还有异步的?
点赞 回复
分享
发布于 08-26 21:21 陕西

相关推荐

33 183 评论
分享
牛客网