嵌入式面试题总结
文章平均质量分 82
ssz008
这个作者很懒,什么都没留下…
展开
-
嵌入式面试常见问题(四)
TCP协议比UDP协议在数据传输前的操作更复杂;因为它需要三次握手建立连接之后,才能收发数据,而UDP协议则不需要握手连接这一步;1.在基于Linux的网络套接字编程中,如果需要创建一个IPv4的网络套接字,应该在socket函数中指定domain参数为。5.TCP/IP协议网络分层中的四层分别是应用层、传输层、网络层和数据链路层。domain:协议簇,表明IP地址的类型。TCP协议比UDP协议在通讯上更可靠;IPPROTO_TCP:TCP传输协议。IPPTOTO_UDP:UDP传输协议。原创 2024-03-04 19:30:37 · 589 阅读 · 0 评论 -
关键字volatile作用和用法
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。它主要用于处理与多线程、中断处理和硬件寄存器等相关的情况。防止编译器优化:编译器在优化代码时会尝试将变量的访问操作优化为更高效的方式,例如将变量的值缓存在寄存器中。然而,对于某些特殊的变量,如多线程环境下的共享变量、中断处理中的标志位、硬件寄存器等,这种优化可能会导致意外的行为。使用volatile关键字可以告诉编译器不要对该变量进行优化,确保每次访问都从内存中读取或写入。处理多线程共享变量。原创 2023-12-07 20:27:48 · 2242 阅读 · 0 评论 -
嵌入式面试常见问题(三)
答:线程冲突,也被称为竞态条件,是指在多线程环境中,当两个多更多的线程同时访问某一共享数据时,最终输出的结果取决于线程的运行时序,这可能导致输出的数据混乱,达到不可预测的效果。比如项目上有辐射探测器和温湿度传感器,这是两个线程,而其余线程又需要这两个线程的数据,一般都会对两个传感器的数值使用mutex.lock()和mutex.unlock()进行加锁,防止数据处理冲突。例如,您可以在/proc/cpuinfo中找到有关CPU的信息,而/proc/meminfo包含有关内存使用情况的信息。原创 2023-11-06 17:03:05 · 335 阅读 · 0 评论 -
嵌入式面试常见问题(二)
因为它是一个内联函数,可以像宏一样使用,任何想使用这个内联函数的源文件,都不必亲自再去定义一遍,直接包含这个头文件,即可像宏一样使用。原创 2023-10-20 13:24:31 · 314 阅读 · 1 评论 -
嵌入式面试常见问题(一)
在函数调用过程中,当要传递的参数个数小于4时,直接使用R0~R3寄存器传递即可;当要传递的参数个数大于4时,前4个参数使用寄存器传递,剩余的参数则压入堆栈保存。在C语言中,结构体(struct)是一种自定义的数据类型,用于组合多个不同类型的变量成为一个单独的实体。·在上面的程序中,main()函数调用了f()函数,并传过去6个实参求和。运算符来访问结构体的成员,具体取决于我们使用的是结构体变量还是指向结构体的指针。改变形参的值并不会改变原来实参的值,因为两者存储在栈中不同的内存单元上。原创 2023-10-12 20:07:47 · 472 阅读 · 0 评论