当前位置: 首页 > news >正文

嵌入式安防监控项目——前期知识复习

目录

一、概述

二、C语言

三、数据结构

四、IO进程

五、网络

六、ARM体系结构和接口技术

七、系统移植

八、内核驱动


一、概述

         我再报班之前学过51和32,不过都是自学的。报班开始先从应用层入手的,C语言和数据结构。只要是个IT专业的大学这都是必学课程。之后学习了一些Linux中好用的工具和shell命令。还有makefile。然后学习了内核的执行单位,进程线程。线程是Linux借助C库实现的。本身没有这个机制。其实它本身就是C和汇编写的说它有这个机制我感觉也没啥毛病。然后还有文件的操作IO操作。一些进程线程间的通信机制。有名管道、无名管道、信号、信号量、socket、共享内存、消息队列一共七种通信机制。

        然后又学习了网络编程,以TCP/IP和UDP/IP为基础的通信协议。进程间的同步互斥机制、之后又进行了裸机开发。感觉除了分配CPU的时候其它机制还没32难度大呢。之后是bootloader最后又学了驱动,向下操作硬件。向上提供接口。

二、C语言

注意几个点

运算符的优先级口诀

 

这几个关键字很重要,面试和笔试会考很多,而且也会经常再项目中使用

静态变量被extern修饰也不能被其它文件的函数使用。

 

 

后面那个更常用

还有指针数组是个数组,数组指针是个指针,指针函数是个函数。函数指针是个指针。

然后面试还有一个常见问题就是计算结构体的大小。

 

define没有错误检测,只用再具体使用时才会发现。

typedef再声明结构时就会发现错误

 

 

三、数据结构

链表: 单链表、双链表、单向循环链表、双向循环链表

顺序表:

栈和队列

增删改查

这部分再面试时也会大量的考

这四个排序一定要能手敲 

还有顺序查找和哈希查找也一定要能手敲出来

四、IO进程

 应用层的缓冲区是开辟一片空间用于数据交换

流缓冲是直接刷新进内核

标准IO

 这个FILE进行溯源发现它是一个结构体,里面有读写的buf

守护紧进程一般运行在极端环境下 

 

 

 

 

 

 共享内存和信号量经常同步使用。

 

exec可以了解一下fork的实现

五、网络

IPV4的根服务器全球有13台,美国自己就占了十台,其它三台再欧洲和日本。我们曾经申请拥有一台,但是被拒绝了,这么大的国家一台都没有显然是不合理的。

如果真的被美国关停网络可能会引起更大的混乱,甚至导致战争的彻底失败,对于寻求崛起的中国来说,随时被竞争对手卡着脖子,显然不符合国家利益,为此中国开始在互联网上做出了自己的努力。

为了防止美国关停我们的网络。一是拥有根镜像服务器,根镜像和根服务器的作用和功能几乎完全相同,甚至可以替代本地根服务器完成IP地址的解析工作。目前世界上总共拥有1100多个根镜像服务器,我国自己拥有10个,足以支撑起国内互联网的实用需求。

二是推动国际互联网进入IPV6时代,相比IPV4,IPV6的地址数量更为庞大,甚至能做到赋予全世界每一粒沙子一个独立的地址。IPV6最初是美国推出的全新技术架构,我国却在此基础上推动了打破根服务器垄断局面的雪人计划,确保国际互联网能够实现多边共治,而非掌握在一国手里。

2017年11月28日,由下一代互联网国家工程中心牵头发起的“雪人计划”已在全球完成25台IPv6(互联网协议第六版)根服务器架设,中国部署了其中的4台,由1台主根服务器和3台辅根服务器组成,打破了中国过去没有根服务器的困境。

ping就是ICMP协议

 

 

现在主流的协议大公司都在用epoll可以再1G的内存空间监听几十万个客户端。利用红黑树加链表来实现的. 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

六、ARM体系结构和接口技术

PC是通用计算机系统,所以不属于嵌入式。

 嵌入式领域的五朵金花

 

这些设备现在已经没法分那么细致了,比如USB上插入一个带网口读卡器的拓展坞上面的USB又插了鼠标键盘,这是什么设备? 

 

 

 这块我前面写的还挺细的

 可以看看前面的文章

七、系统移植

uboot是面试经常问的。面试驱动岗内核岗他会问你uboot而不是问你内核

 

这部分很难,而且对未来发展不是很有必要。但是你是芯片厂商开发bootloader的就不一样了。真的很牛。而且不会少挣的。

这些程序写的都挺好的,感兴趣可以追一下看看。

 

八、内核驱动

 

其实我没太明白这个问题。我记得当同一时刻多个任务访问这个设备文件的时候会产生竞态,有一些并发机制可以解决。

字符设备驱动基础(三)_宇努力学习的博客-CSDN博客 

 

 

 

IIC面试时主要问两个方面

协议和驱动

协议上是怎么读写

驱动就是它程序编写的框架

MAssage

 

 

相关文章:

嵌入式安防监控项目——前期知识复习

目录 一、概述 二、C语言 三、数据结构 四、IO进程 五、网络 六、ARM体系结构和接口技术 七、系统移植 八、内核驱动 一、概述 我再报班之前学过51和32,不过都是自学的。报班开始先从应用层入手的,C语言和数据结构。只要是个IT专业的大学这都是必…...

SpringAOP——基础知识

AOP AOP全称是Aspect Oriented Programming 即面向切面编程,是对一类统一事务的集中处理 例如,我们的网页许多地方都需要进行登陆验证,这时就需要在很多地方添加重复的验证代码,而AOP可以集中配置需要登陆验证的地方,…...

kafka3.0安装使用

一:定义 Kafka传 统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。 Kafka最 新定义 : Kafka是 一个开源的 分 布式事件流平台 (Event St…...

Centos7(阿里云)_安装Mysql8.0

1.安装MySQL 新人可以试用一个月的阿里云,centos7的 一开始可能确实会自带mariadb,所以可以在网上随便找个教程开始尝试安装MySQL,当然大概率出错,然后此时你的rpm下面已经有了一个版本的mysql安装包。 以我为例,随便…...

【Java】JVM

一、介绍 1.什么是JVM? JVM是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的。JVM包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。JVM屏…...

Linux 和数据库笔记-06

今日内容介绍全天内容无需立马掌握MySQL 的高级功能应用数据库设计ER模型定义: E 代表实体(数据表), R 代表联系(数据表之间对应的字段)![image-20200530092701017](Linux 和数据库 day06 随堂笔记.assets/image-20200530092701017.png)关系常见分类一对一一对多多对多外键如果…...

MySQL面试题-事务篇

1.事务的特性(ACID) 事务(Transaction)是指一组操作被看作是一个不可分割的工作单元,这组操作要么全部执行成功,要么全部执行失败。事务的特性通常用 ACID 四个单词来描述,它们分别代表原子性&…...

Linux嵌入式开发 | 汇编驱动LED(1)

文章目录🚗 🚗Linux嵌入式开发 | 汇编驱动LED(1)🚗 🚗初始化IO🚗 🚗STM32🚗 🚗使能GPIO时钟🚗 🚗设置IO复用🚗 &#x1f6…...

什么是EventLoop?怎么测试Node或页面的性能

Event Loop 机制大家应该都有了解。本文利用 EventLoop 去做一个有趣的检测node或页面性能的代码,顺便介绍了一下EventLoop,希望对大家有所帮助! Event Loop Event Loop 机制大家应该都有了解。我先重复总结一下。 Node.js 和 Javascript 的…...

1018 锤子剪刀布 1025 反转链表

现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10 5 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信…...

卷积神经网络的原理及实现

专栏:神经网络复现目录 卷积神经网络 本章介绍的卷积神经网络(convolutional neural network,CNN)是一类强大的、为处理图像数据而设计的神经网络。 基于卷积神经网络架构的模型在计算机视觉领域中已经占主导地位,当今…...

【C++知识点】重载

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:C/C知识点 📣专栏定位:整理一下 C 相关的知识点,供大家学习参考~ ❤️如果有收获的话,欢迎点赞👍…...

apscheduler三种定时触发方式

#第一种# date: 特定的时间点触发# 2019-01-01 00:00:00 准时执行# import time # from apscheduler.schedulers.blocking import BlockingScheduler # # def my_job(): # print(time.strftime(%Y-%m-%d %H:%M:%S, time.localtime(time.time()))) # sched BlockingSchedu…...

802.11 service服务类型

802.11 serviceservice定义service分类按照模块分为两类按照功能分为六类数据传输相关服务分布式服务DS(Distribution Service)整合服务IS(Integration Service)关联(association)重关联(reasso…...

pytest测试框架——allure报告

文章目录一、allure的介绍二、allure的运行方式三、allure报告的生成方式一、在线报告、会直接打开默认浏览器展示当前报告方式二、静态资源文件报告(带index.html、css、js等文件),需要将报告布置到web服务器上。四、allure中装饰器1、实现给…...

SQLI-Labs(3)8-14关【布尔盲注和时间盲注】

目录 第八关 第九关: 第十关 第十一关 第十二关 第十三关 第十四关 第八关 我们用测试语句来测试是否为注入点 从上图中得知存在注入点,那么接下来就是爆列 一共有三列,接下来用union select 和报错注入都试一下发现没有回显点&…...

ESP32学习笔记03-日志打印

ESP32日志 日志分为5个等级 ESP_LOGE - error (lowest)ESP_LOGW - warningESP_LOGI - infoESP_LOGD - debugESP_LOGV - verbose (highest)API 0.头文件 #include "esp_log.h"1.给一个日志标签设置等级...

mongoTemplate非string类型模糊查询

需求 为方便使用人员对任务Task的搜索,需要根据number实现模糊搜索。 背景 之前设计的number是long类型,但是mongodb只支持string类型的正则匹配。 方案 修改number为string类型;新增一个冗余字段,用于模糊查询;在…...

Redis是单线程还是多线程?Redis的10种数据类型,有哪些应用场景?

目录专栏导读一、同样是缓存,用map不行吗?二、Redis为什么是单线程的?三、Redis真的是单线程的吗?四、Redis优缺点1、优点2、缺点五、Redis常见业务场景六、Redis常见数据类型1、String2、List3、Hash4、Set5、Zset6、BitMap7、Bi…...

到底什么才是幻读?

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes&#xff0…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...