logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

day24

重入:函数可被多个任务 / 中断同时调用,执行不会出错。动态链接:运行时加载库文件,程序体积更小。答案:段错误是程序访问非法内存地址引发的运行错误。C 语言中什么是段错误(Segmentation fault)?指针空值,代表指针不指向有效地址,本质是指针类型的 0。简述静态链接与动态链接,嵌入式裸机开发一般使用哪种链接方式,为什么?restrict 用于指针,告诉编译器:该指针是访问这块内存。c

#java#开发语言
day23

场景:通信协议报文、寄存器结构体,要求结构体无填充字节,和协议格式严格一致。弊端:强制取消对齐后,部分 MCU 访问非对齐内存会硬件异常、代码执行变慢,平台兼容性变差。回调函数:把函数指针作为参数传给另一个函数,满足条件时由对方调用该函数。auto 用来声明自动局部变量,存储在栈上,函数退出自动销毁。源缓冲区和目标缓冲区存在地址重叠时,禁止使用 memcpy,应当使用 memmove。函数指针:专

#网络
day18

题目:简述 C 语言中全局变量的优缺点,嵌入式单片机开发中如何减少全局变量滥用?答案: 优点:整个程序任意函数均可访问,生命周期全程有效,可替代静态局部变量传递数据。缺点:全部共享访问,多中断 / 多任务易数据冲突;嵌入式开发有什么用途?答案: void* 通用无类型指针,可以接收任意类型数据的地址,无法直接解引用。用途:实现通用函数,如。限制:解引用、指针运算前必须强制转换为具体类型;题目:me

#嵌入式硬件
刷题第九天

上半部也就是所谓的硬中断处理逻辑,其要求 cpu 在收到硬件请求后必须马上处理的事情,比如网卡收到数据包了,把数据包从网卡缓存拷贝到主存(可以由 DMA 完成,但寄存器的修改以及资源设定还是要由 cpu 去做)的逻辑就需要 cpu 立即去做,不做的话,网络新来的数据包就可能丢失。3️⃣下半部有很多种机制,其中就包括软中断,还有 tasklet, workqueue 等,软中断只是其中的一种,由于历

#嵌入式硬件
到底了