嵌入式常用知识

news2024/11/25 15:41:32

12、并发和并行的区别?
最本质的区别就是:并发是轮流处理多个任务,并行是同时处理多个任务。
你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。

你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。 (不一定是同时的)

你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。

并发的关键是你有处理多个任务的能力,不一定要同时。

并行的关键是你有同时处理多个任务的能力。

所以我认为它们最关键的点就是:是否是『同时』。

并发是轮流处理多个任务,并行是同时处理多个任务
原文链接:https://blog.csdn.net/weixin_30363263/article/details/80732156

1、const 含义
只读
问题:const char* name = “hello word”,是否可以改变name里存放的字符串?
不可以,指针指向常量,内容不可变,指针可以变。
const char *p; //*p是const,p可变

const (char *) p;//p是const,*p可变

char* const p; //p是const,*p可变

const char* const p; //p和*p都是const

char const * p;// *p是const,p可变

(char*) const p;//p是const,*p可变

char* const p;// p是const,*p可变

2、C语言中strlen和sizeof的区别
1.strlen是一个库函数使用时需要引用#include<string.h>这个头文件,而sizeof是一个运算符号;

2.strlen计算的是’\0’之前的字符个数,sizefo计算的是所占空间内存的大小,单位是字节;

3.strlen计算时不包含’\0’,而sizeof包含’\0’;

4.strlen遇到’\0’才结束;

5.sizeof的类型是unsigned int ,是一个无符号的整型;

6.strlen只能用char做参数,sizeof可以用类型做参数;

3、ioctl如何确保命令的唯一性?
ioctl 用户与驱动之间的协议

前文提到 ioctl 方法第二个参数 cmd 为用户与驱动的 “协议”,理论上可以为任意 int 型数据,可以为 0、1、2、3……,但是为了确保该 “协议” 的唯一性,ioctl 命令应该使用更科学严谨的方法赋值,在linux中,提供了一种 ioctl 命令的统一格式,将 32 位 int 型数据划分为四个位段,如下图所示:

// include/uapi/asm-generic/ioctl.h

#define _IOC(dir,type,nr,size)
(((dir) << _IOC_DIRSHIFT) |
((type) << _IOC_TYPESHIFT) |
((nr) << _IOC_NRSHIFT) |
((size) << _IOC_SIZESHIFT))
dir(direction),ioctl 命令访问模式(数据传输方向),占据 2 bit,可以为 _IOC_NONE、_IOC_READ、_IOC_WRITE、_IOC_READ | _IOC_WRITE,分别指示了四种访问模式:无数据、读数据、写数据、读写数据;
type(device type),设备类型,占据 8 bit,在一些文献中翻译为 “幻数” 或者 “魔数”,可以为任意 char 型字符,例如
‘a’、’b’、’c’ 等等,其主要作用是使 ioctl 命令有唯一的设备标识;
nr(number),命令编号/序数,占据 8 bit,可以为任意 unsigned char 型数据,取值范围 0~255,如果定义了多个 ioctl 命令,通常从 0 开始编号递增;
size,涉及到 ioctl 函数 第三个参数 arg ,占据 13bit 或者 14bit(体系相关,arm 架构一般为 14 位),指定了 arg 的数据类型及长度,如果在驱动的 ioctl 实现中不检查,通常可以忽略该参数;

4、copy_from_user 返回值含义
copy_from_user失败返回没有被拷贝的字节数,成功返回0.

5、linux设备驱动注册流程

  1. 驱动程序入口 module_init (at6600efb_init)
  2. 模块初始化 platform_driver_register(&at6600efb_platform_driver);
  3. 驱动程序注册 platfrom_driver_register() 是在设备注册时进行绑定的.以USB为例:先插上USB设备并挂到总线上,然后在安装USB设备驱动的过程中,从总线上遍历各个设备,看是否有与驱动相匹配的设备,如果有,则两者绑定,就是platfrom_driver_register()

platfrom_device_register() 是在驱动注册时进行绑定的.以USB为例:先安装USB驱动程序,然后当USB设备插入时,就遍历总线上各个驱动,看两者是否匹配,如果相配则绑定,这就是platfrom_device_register()

6、platform目录在哪里?
/sys/bus/platform/drivers

7、问:用宏定义一年有多少秒(忽略闰年)
答:

#define SECONDS_PER_YEAR 60 * 60 * 24 * 365UL //加UL,是为了防止溢出

8、IPC摄像头含义
internet protocol camera

9、vmalloc 和 kmalloc区别
.kmalloc分配的页在物理地址上是连续的(虚拟地址自然也是连续的)

vmalloc只确保页在虚拟地址空间内是连续的。它通过非连续的物理内存块,再“修正”页表,把内存映射到逻辑地址空间是连续的区域内。

10、单精度和双精度
单精度是这样的格式,1位符号,8位指数,23位小数。
单精度和双精度精确的范围不一样:单精度,也即float,一般在计算机中存储占用4字节,也32位,有效位数为7位;

在这里插入图片描述
双精度是1位符号,11位指数,52位小数。
双精度(double)在计算机中存储占用8字节,64位,有效位数为16位。
在这里插入图片描述

11、cache作用

在这里插入图片描述
Cache可以大大提高CPU访问主存的速度,中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,能极大缓和中央处理器和主存储器之间速度不匹配的矛盾。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/365308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐5款实用小工具,第五款更是小白最爱

作为一个黑科技软件爱好者&#xff0c;电脑里肯定是不会缺少这方面的东西&#xff0c;今天的5款实用小工具闪亮登场了。 1.磁盘空间分析——SpcaeSniffer SpcaeSniffer是一款可视化硬盘空间占用布局大小的查询工具&#xff0c;软件体积小巧&#xff0c;使用简单。软件可对所需…

Android Studio翻译插件推介(Translation)

前言 Android Studio翻译插件适合英语水平不太好的程序员&#xff08;比如&#xff1a;我&#xff09;&#xff0c;最常用的翻译插件Translation和AndroidLocalize&#xff0c;本文主要讲解Translation&#xff0c;亲测可用。 先看看效果&#xff1a;这里是Android的API,任意选…

apache、iis设置301教程(适用虚拟主机)

当前提供教程是通过重写规则实现301,目前西部数码主机面板已经开发"301转向"功能可快捷设置&#xff1a; 如果部署了https访问&#xff0c;请忽略此教程&#xff0c;部署https的网站请参考&#xff1a;https://www.west.cn/faq/list.asp?unid1419 进入业务管理-虚…

单通道说话人语音分离——Conv-TasNet(Convolutional Time-domain audio separation Network)

单通道说话人语音分离——Conv-TasNet模型(Convolutional Time-domain audio separation Network) 参考文献&#xff1a;《Conv-TasNet: Surpassing Ideal Time-FrequencyMagnitude Masking for Speech Separation》 1.背景 在真实的声学环境中&#xff0c;鲁棒的语音处理通常…

【蓝桥杯每日一题】差分算法

&#x1f34e; 博客主页&#xff1a;&#x1f319;披星戴月的贾维斯 &#x1f34e; 欢迎关注&#xff1a;&#x1f44d;点赞&#x1f343;收藏&#x1f525;留言 &#x1f347;系列专栏&#xff1a;&#x1f319; 蓝桥杯 &#x1f319;我与杀戮之中绽放&#xff0c;亦如黎明的花…

银河麒麟V10桌面版系统将用户开发Qt界面程序添加为开机自启动

银河麒麟V10桌面版系统将用户开发Qt界面程序添加为开机自启动 银河麒麟V10桌面版系统允许用户开发自己的qt界面程序并将其添加为开机自启动。这样&#xff0c;每次开机后&#xff0c;用户开发的qt界面程序会自动启动&#xff0c;无需手动打开。 要将用户开发的qt界面程序添加…

走进chatGPT新一代机器人

chatGPT这款新一代对话式人工智能便在全球范围狂揽1亿名用户&#xff0c;并成功从科技界破圈&#xff0c;成为街头巷尾的谈资。chatGPT能干什么&#xff1f;打开官网https://openai.com/blog/chatgpt/ &#xff0c;完了&#xff0c;芭比Q了试下其他家的接口讲笑话写代码写解决方…

格雷码应用意义及编解码

文章目录1. 格雷码的应用意义2. 由自然数编码获得格雷码2.1 对称法实现2.2 公式法实现3. 由格雷码解码获得自然数1. 格雷码的应用意义 学过晶体管知识的朋友们都知道&#xff0c;数据位跳变就相当于硬件电路中的晶体管翻转。许多位同时跳变就相当于多个晶体管同时翻转&#xf…

【C++】STL之空间配置器 | STL总结

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《吃透西嘎嘎》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;什么是空…

全球首个云渗透测试认证专家课程发布!腾讯安全领衔编制

2月20日&#xff0c;国际云安全联盟CSA发布了“云渗透测试认证专家CCPTP”课程体系&#xff0c;这是全球首个云渗透测试能力培养课程及人才认证项目&#xff0c;有效地弥补了云渗透测试认知的差距和技能人才培养的空白。腾讯安全在该项目中担任核心课程编撰单位。CSA是全球中立…

【双指针问题】LeetCode344、345、 844、283问题详解及代码实现

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

曼恩斯特在创业板注册生效:拟募资约5亿元,彭建林夫妇为实控人

2月21日&#xff0c;深圳证券交易所披露的信息显示&#xff0c;深圳市曼恩斯特科技股份有限公司&#xff08;下称“曼恩斯特”&#xff09;的注册生效。据贝多财经了解&#xff0c;曼恩斯特于2021年6月30日在创业板递交招股书&#xff0c;2022年6月15日获得上市委会议通过&…

老戏骨李立群真敢说,互联网吐槽郝蕾演技太差

说起老戏骨李立群&#xff0c;可能很多人都想不起来&#xff0c;他究竟出演过什么影视作品&#xff0c;不过这依然不能阻挡他的走红。李立群的走红非常偶然&#xff0c;因为在大陆拍戏多年&#xff0c;他已经在上海买房定居&#xff0c;当然偶尔也会去台北省亲。 在上海疫情爆发…

【C++】3.类和对象(中)

1.类的6个默认成员函数 一个类什么都没有不是空类 我们没有写相关函数 但编译器会自动生成6个默认函数 2.构造函数 1概念 构造函数是一个特殊的成员函数&#xff0c;名字与类名相同,创建类类型对象时由编译器自动调用&#xff0c;保证每个数据成员都有一个合适的初始值&…

微服务架构中的多级缓存设计还有人不懂?

今天我们来聊聊缓存这个话题&#xff0c;看看在微服务环境下如何设计有效的多级缓存架构。主要涉及三方面内容&#xff1a; Web 应用的客户端缓存&#xff1b;应用层静态资源缓存&#xff1b;服务层多级缓存。 首先&#xff0c;咱们先讲解微服务架构的多级缓存设计。 微服务…

ElasticSearch 学习笔记总结(一)

文章目录一、 数据的 分类二、 ElasticSearch 介绍三、 ElasticSearch 搭建四、正排索引 和 倒排索引五、ES HTTP 索引 操作六、ES HTTP 文档 操作七、ES HTTP 查询数据1. 条件查询2. 分页查询3. 排序查询4. 多条件查询5. 全文检索 完全匹配 高亮显示6. 聚合查询八、 ES HTTP 映…

2.22JVM

一.学习目标1)JVM内存区域划分2)JVM的类加载机制3)JVM的垃圾回收1.JVM执行流程程序在执行之前先要把Java代码转换为字节码(.class),JVM首先需要通过一定的方式类加载器把文件加载到运行时数据区,而字节码文件是JVM的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特…

【11-JVM面试专题-说说你知道的垃圾回收算法?垃圾回收器你知道吗?CMS、G1和ZGC垃圾回收器你有过了解吗?】

JVM面试专题-说说你知道的垃圾回收算法&#xff1f;垃圾回收器你知道吗&#xff1f;CMS、G1和ZGC垃圾回收器你有过了解吗&#xff1f; JVM面试专题-说说你知道的垃圾回收算法&#xff1f;垃圾回收器你知道吗&#xff1f;CMS、G1和ZGC垃圾回收器你有过了解吗&#xff1f;你掌握的…

Wincc Flexible smart V4触摸屏软件中批量导入PLC变量的具体方法示例(无需单个添加)

Wincc Flexible smart V4触摸屏软件中批量导入PLC变量的具体方法示例(无需单个添加) 具体操作步骤可参考以下例子中的内容: 打开STEP7-MicroWin smart软件,编辑自己的PLC程序(这里以一个简单的启保停程序为例), 如下图所示,打开Wincc Flexible smart V4触摸屏软件,新建…

双指针 (C/C++)

1. 双指针 双指针算法的核心思想&#xff1a;将暴力解法的时间复杂度&#xff0c;通常是O(N*N)&#xff0c;通过某种特殊的性质优化到O(N)。 做题思路&#xff1a;先想想暴力解法的思路&#xff0c;然后分析这道题的特殊性质&#xff0c;一般是单调性。然后得出双指针算法的思路…