当前位置: 首页 > 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

 

 

http://www.lryc.cn/news/31039.html

相关文章:

  • SpringAOP——基础知识
  • kafka3.0安装使用
  • Centos7(阿里云)_安装Mysql8.0
  • 【Java】JVM
  • Linux 和数据库笔记-06
  • MySQL面试题-事务篇
  • Linux嵌入式开发 | 汇编驱动LED(1)
  • 什么是EventLoop?怎么测试Node或页面的性能
  • 1018 锤子剪刀布 1025 反转链表
  • 卷积神经网络的原理及实现
  • 【C++知识点】重载
  • apscheduler三种定时触发方式
  • 802.11 service服务类型
  • pytest测试框架——allure报告
  • SQLI-Labs(3)8-14关【布尔盲注和时间盲注】
  • ESP32学习笔记03-日志打印
  • mongoTemplate非string类型模糊查询
  • Redis是单线程还是多线程?Redis的10种数据类型,有哪些应用场景?
  • 到底什么才是幻读?
  • RPC重试机制和控制方案
  • 【无标题】动态给结构体赋值
  • centos7 soft raid每周自动同步的问题
  • 嵌入式Linux内核代码风格
  • Andorid:关于Binder几个面试问题
  • 【剑指Offer-Java】包含min函数的栈?
  • 红队APT——邮件钓鱼攻击SwaksOffice漏洞RLO隐藏压缩释放
  • 【Java|基础篇】超详细讲解运算符
  • Promise-异步回调
  • 【设计模式之美 设计原则与思想:设计原则】21 | 理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?
  • 深度学习 | 入个Pytorch的小门