你知道问题吗:你是如何学习嵌入式开发的? 我现在自学嵌入式软件开发。 我对单片机了解不多,只知道二进制0和1,程序说白了就是由无数选项( 0和1 )组成,但单片机内部电路如何长,程序写入后单片机的C语言程序的构成有哪些(例如控制逻辑、存储位置等),我们来看看完全相同的C语言回答者“cdfarsight”的好评回答。 一起学习一下圈内的大人物是如何学习嵌入式的吧。
01
前言近年来,嵌入式系统产品逐渐完善,在全世界各行各业得到广泛应用。 2004年,全球嵌入式系统产品产值达到2000亿美元,国内嵌入式软件产值也达到600亿元人民币。 目前,嵌入式系统产品的研发和应用已经成为我国信息化推动工业化、工业化促进信息化发展的新的国民经济增长点。 随着家电的智能化、普及化,嵌入式APP应用逐渐显现。 手机、平板电脑、智能音响、数码相机、机顶盒、可穿戴设备、智能玩具也层出不穷; 汽车电子、智能家电、医疗器械等领域也竞争激烈。 随着互联网的飞速发展和廉价微处理器的出现,嵌入式领域预计将会迅速发展。
02
学习课程对于刚入门不久的新人来说,好的学习课程往往能收获更多。 排除专业领域的深度学习,合格的嵌入式软件工程师应该具备哪些技能和素质呢? 笔者认为可以从以下几个方面入手。 A嵌入式软件编程基础这一阶段,重点做好嵌入式软件编程的基础,包括学习Linux系统的基本应用、Linux的常用命令、C语言编程基础、常用数据结构。 特别是C语言中指针的理解和应用。 此阶段的主要目的是培养编程语言、开发环境和自己的编程思维,为进一步学习嵌入式开发奠定良好的基础。 Linux Ubuntu操作系统的安装和使用、Linux常用命令、samba服务器、SSH远程登录GCC编译器、GDB调试器、VI编辑器1 )嵌入式c语言的基本配置2 ) c语言高级语法:结构、共同体、宏、 枚举3 )数据结构4 ) Linux系统的基本使用和配置5 ) Linux上的makefile机制及其创建6 ) Linux上的shell script知识及其创建推荐的嵌入式学习手册: 《C程序设计语言》《大话数据结构》5 器的Linux高级编程在此阶段,您将主要学习基于Linux的多进程、多线程、文件和目录等高级嵌入式Linux APP开发。 掌握进程和线程的编程思想才是打开技术学习的大门,否则就永远停留在语法、算法的层面,无法深入解决许多实际问题。 1 ) Linux系统调用概念2 )使用文件I/O操作函数; 3 )过程相关概念及基本控制函数; 4 )无名管线、命名管线、信号、消息队列、共享内存、信号量集合; 5 )多进程、多线程多任务开发6 )多任务同步排他开发)排他锁、自旋锁、读写锁、信号量、条件变量; 在这个阶段,我推荐书籍。 《Linux与Unix Shell 编程指南》 《Linux就该这么学》 C Linux高级网络编程本阶段主要学习网络APP应用的CS架构编程方法、套接字编程接口和框架同时掌握必要的数据库操作和函数,具备系统编程综合素质。 这个阶段的主要内容有:1)网络相关的概念和网络的发展2 ) socket编程、TCP网络编程、UDP网络编程、Web编程开发等3 ) Linux网络APP应用5 )网络原始套接字的概念和编程接口以及套接字属性的设置; 6 ) HTTP协议及其实现方法6 )数据库概念、数据库类型、常见数据库7 ) SQLite数据库介绍及其安装与移植环节推荐书目: 《UNIX环境高级编程》 《嵌入式Linux应用程序开发详解》 C语言作为高级语言,语法复杂,不易掌握,而其编程思想是其精华,具有融会贯通、有招无术的特效。 1 )熟悉面向对象语言2 )熟悉c基本语法3 )封装、继承、多继承4 )多态性)虚函数、抽象类、模板5 )标准模板库STL的使用与原理; 6 ) UML建模和设计模式; 7 )使用各种网络库、数据库、IO库、线程库8 ) Qt向C的扩展和使用; 本阶段推荐书籍: 《TCP-IP详解卷》0《UNIX环境高级编程》《Unix网络编程》0《C Primer》0055-790000 earm的结构和驱动开发阶段主要是了解芯片程序开发的相关内容,STM32的开发、汇编
该阶段的学习内容包括:1)单片机基础(汇编指令、时钟、GPIO、定时器、中断); 2 ) A53开发板介绍、设备使用、交叉编译3 )用Keil编写汇编指令; 3 )使用通信总线UART、IIC、SPI和传感器模块; 4 ) STM32开发流程5 ) uCos微系统的移植与使用; 6 ) Linux系统的移植和使用; 本阶段推荐书籍: 《The Standard C Library》《大话设计模式》《Qt Creator快速入门》0 f常用通信模块学习本阶段需要学习现有工程模块的使用和原理,包括RFID、红外线、2.4G、蓝牙、zigoth 当然不要求完全掌握所有内容,至少可以使用。 具体地,该阶段包括:1) RFID的工作原理,以及读卡器的原理和通信过程; 2 )红外遥控器的原理和使用3 ) 2.4G无线模块的配对与使用; 4 )蓝牙模块的通信原理与使用5 ) TI的CC2530的基本应用,Zibgee相关微控制处理芯片; 6 )熟悉NB-IOT的基本概念和CoAP协议在中的应用; 7 ) Lora模块的使用; 8 )掌握温度、湿度、光照、PH、二氧化碳等传感器的工作原理和通信接口; 此阶段不推荐技术书籍,但如果您感兴趣,请阅读与传感器技术相关的书籍、通信原理相关的书籍或官方介绍手册;
03
推荐嵌入式项目嵌入式技术的关键在于理论与实践的结合,要想实际应用,在完成以上所有阶段的知识点学习之后,是否真正掌握,能否应用所掌握的知识解决实际开发中的问题,我们要综合考虑例如,项目1 :智能家居项目本项目实现了设备的现场控制和远程控制,对于开放量设备,通过温湿度等信息采集类设备的控制、视频监控等监控类设备的控制、外人入侵等安防系统的GPRS 项目涉及技术C语言、多任务开发、web socket开发、boa网络服务器、CGI编程、html页面设计等项目2。 智能人脸识别项目本项目首先通过opencv库的使用实现人脸基本训练模型的检测,并进一步深入学习人脸识别以及实时获取图像进行分析和识别。 了解opencv、dlib等开源工具项目3(RFID智能入口项目本项目实现RFID卡识别,用户信息注册、修改、删除、语音提示可在不同搜索条件下查询考勤项目4 )多媒体播放器项目实现带图形界面的音乐播放、暂停、上一首歌、下一首歌、歌曲列表歌词同步等播放器功能。 涉及的知识点包括C语言、数据结构链表、Linux多进程、多线程、进程间通信、同步互斥等。 智能手机设计项目该项目可实现智能手机来电、来电显示、收发英语短信、查看短信、检测信号强度、检测运营商。 项目涉及的技术GPRS AT指令集、Linux多进程、多线程、进程间通信、同步互斥、 GUI图形开发等项目6 :智能教室项目本项目可以通过NB-IOT等标准物联网通信协议实现现代化资源的统一管理,基本功能为教室灯光控制、空调、通风、通风。 实现人流等实时远程监控,实现联动、手动控制和数据采集分析,以上就是我提出的比较系统的嵌入式学习途径。 学习系统,能够运用以上知识后,嵌入式基本入门,也具备企业项目嵌入式研发能力。 此时,应聘企业嵌入式研发工程师的岗位就没问题了。 看了这里,你对嵌入式有了一点了解吗? 欢迎评论,欢迎讨论。 参考链接: https://www.zhi Hu.com/question/454411605/answer/1834680462关注我们,一起学习更多IT知识吧!