嵌入式学习攻略

news2024/11/25 23:52:21

嵌入式软件编程的基础

主要是学习编程语言、开发环境和形成自己的编程逻辑,为嵌入式软件开发打下良好的基础,编程语言建议为C和C++语言。书籍中的例子都是比较经典的程序实例,尽量去搞懂,不要觉得太长或者太难了而放弃,对自己理解相应的知识点非常有帮助,最后时间充裕的话,可以选做章节后面的习题。也可以结合教学视频进行学习,配合相应的教材书籍学习。

C语言:

1、C程序结构、C数据类型和基本语法

2、数组、字符串、指针、函数

3、结构体、宏定义、枚举

4、C输入和输出

C++语言:

1、熟悉面向对象的语言概述(封装、继承、多态)

2、熟练掌握C++语言的基本知识和类与对象及其高级应用

3、作用域运算符、内联函数、强制类型转换

4、new、delete内存管理

5、对象成员、成员函数

6、构造函数、析构函数、拷贝构造函数、函数重载

7、对象数组、this指针、枚举、

8、静态成员、静态成员函数

9、对象成员

10、友元

11、虚函数、纯虚函数、抽象类、虚析构函数等

推荐书籍:

《C程序设计》

《C和指针》

《C Primer Plus》

《C++ Primer Plus》

推荐视频:

《C语言程序设计》——翁恺

《C++语言程序设计》——郑莉

有了C/C++的基础,可以进一步学习数据结构与算法。

1、数据结构:字符串、数组、链表、堆、栈、队列、树、哈希、图

2、算法:查找、排序

推荐书籍:

《大话数据结构》

《数据结构》——陈越

推荐视频:

《数据结构》——陈越

嵌入式开发与应用基础

一般会以特定的嵌入式平台、裸机和嵌入式操作系统为依托,熟悉这个系统平台上的编程方法和流程。最常见的51单片机和stm32,或arduino和树莓派等,可以购买开发板,根据教学视频或开发指南进行学习,同时可以学习RTOS操作系统,为Linux学习打下基础。

嵌入式裸机开发:

1、GPIO:典型电路、工作模式、相关寄存器

2、中断:工作模式、优先级、嵌套、中断处理程序、外部中断

3、定时器:时钟体系和结构、关键寄存器、PWM定时器、看门狗定时器、定时器中断、实时时钟

4、AD/DA:工作原理、寄存器操作、相关的传感器使用

5、协议/接口/总线:UART、IIC、SPI、485、CAN、USB

6、无线模块:蓝牙、WiFi

7、存储器:Flash、外部ROM、外部RAM、SD卡

8、显示模块:LCD、触摸屏

在学习Linux之前,建议先学习微机原理、操作系统、计算机网络,有了这些基础能促进自己对Linux系统的理解。

开发板推荐:

韦东山或者正点原子的嵌入式Linux开发板

推荐书籍:

《操作系统导论》

《网路是怎么连接的》

《图解TCP/IP》

《鸟哥的Linux私房菜》

《Linux设备驱动开发详解》

Linux操作系统介绍:

Linux系统平台编程:

嵌入式底层开发:

1、Bootloader裁剪和移植、Linux内核配置/编译/调试/裁剪/移植、根文件系统创建、文件系统移植;

2、Linux内核编程;

3、Linux驱动开发(总线设备驱动、网络设备驱动、块设备驱动等)

软硬件项目实战

嵌入式技术关键在于理论和实践的结合,在实践中学习和巩固,能解决实际开发中的问题,实践过程中掌握核心知识是什么,什么时候用,如何用,为什么这么设计,达到触类旁通效果。

通过参加竞赛或者实验室课题项目进行实践,或者利用网络资源GitHub,视频网站b站或油管上有很多有趣的开源实战项目,可以选自己感兴趣的进行实践,例如:《14个电子专业必做的优秀实战项目》《稚晖君的开源项目》《RoboInventor机甲学院》《GIE工作室》等等。

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

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

相关文章

[正确重装docker] Win10 重装 Docker 提示 Exising installation is up to date 的正确姿势

Win10 重装 Docker 报错 Exising installation is up to date 的一种情况是原来的 docker 没有卸载干净,或者说,没有正确卸载。 巧了,我就是直接删除了,因为一些原因重装了好几次,血泪史留给各位嘲笑。 一条正确的卸…

编程(48)----------网页打开的过程

一个网页的打开大致分为以下几步: 1.DNS查询 在进行网络访问过程中, 实际上所访问的是IP地址. 但输入的却仅仅是域名. 因为IP地址过于复杂不利于记忆. 因此, 需要将IP转换成更具有辨识度的域名. 通过输入域名, 以DNS进行转换为IP, 再发起请求. DNS在得到域名后会进行查询, …

P7075 [CSP-S2020] 儒略日(内附封面)

[CSP-S2020] 儒略日 题目描述 为了简便计算,天文学家们使用儒略日(Julian day)来表达时间。所谓儒略日,其定义为从公元前 4713 年 1 月 1 日正午 12 点到此后某一时刻间所经过的天数,不满一天者用小数表达。若利用这…

得帆信息副总裁——陈明:低代码企业内部推广场景建议

在之前的文章中有介绍过#企业内部如何做低代码的运营推广(☜点击回顾精彩),感兴趣的可以结合之前的文章进行了解。 结合本人这几年的低代码落地推广经验,不论是由得帆主导的低代码平台运营推广,还是由客户自身主导进行…

广通优云完成2亿元C轮融资,加速平台级运维产品的技术创新

广通优云于近期完成2亿元C轮融资,松禾资本领投,朗玛峰创投、奇安投资、舜宇投资、天雅资本等机构跟投,皓石资本担任本轮独家财务顾问。资金将主要应用于公司产品创新研发、团队人才建设及市场生态开拓等方面。 在当前资本市场遇冷的背景下&a…

RSS阅读器

focus:免费、无广告、已停止维护[2020]、开源 也许后面我会维护更新。 Archive: https://www.ihewro.com/archives/948/ 开源代码:https://github.com/ihewro/Focus 🍰借助RSShub开源项目,自带丰富订阅市场,尽可能简…

【大数据之Kafka】十四、Kafka-Eagle监控

Kafka-Eagle 框架可以监控Kafka 集群的整体运行情况,在生产环境中经常使用。 1 MySQL环境准备 https://blog.csdn.net/qq_18625571/article/details/130613704?spm1001.2014.3001.5501 2 Kafka环境准备 (1)关闭Kafka集群。 kf.sh stop&…

反向动力学Ik学习

参考文章:(非本人原创) 英文原文:Inverse Kinematics Techniques in Computer Graphics: A Survey (andreasaristidou.com) 知乎翻译文章: 【游戏开发】逆向运动学(IK)详解 - 知乎 (zhihu.co…

django创建web服务器

安装 pip install django 创建项目 django-admin startproject report django-admin startapp data //project下可创建多个app 执行使用 python manage.py migrate //orm代码到数据库 python manage.py runserver 0.0.0.0:80 权限管理 python manage.py createsuperuser 创建…

住宅区电力系统管理,这一点很重要!

随着现代社会对电力供应的不断增长需求,住宅小区的电力分配系统变得越来越复杂。电力是我们日常生活中不可或缺的一部分,因此确保小区的电力供应安全和稳定至关重要。 配电柜监控是确保电力系统安全和稳定运行的重要工具。它可以提高电力供应的可靠性&am…

掌动智能浅谈UI自动化测试工具的重要性

在现代软件开发中,用户界面(UI)的质量和可靠性对于一个应用的成功至关重要。为了确保应用在各种环境和设备上都能正常运行,开发团队需要进行全面的UI测试。为了提高测试效率和减少人为错误,UI自动化测试工具成为不可或缺的工具。本文将探讨UI…

Redis缓存实现及其常见问题解决方案

随着互联网技术的发展,数据处理的速度和效率成为了衡量一个系统性能的重要指标。在众多的数据处理技术中,缓存技术以其出色的性能优化效果,成为了不可或缺的一环。而在众多的缓存技术中,Redis 以其出色的性能和丰富的功能&#xf…

安卓系统--翻译手机rom语言 添加多国语言 编译apk 反编译ODEX 工具步骤解析

很多小品牌机型不具备多语言设置。国内大都是中文。要想换为其他语言除非固件支持。例如国际版固件等等。大厂基本都有中文或者英文或者其他语言配置。而小品牌机型只能通过修改rom来达到多语言调用. 工具步骤演示 今天给友友介绍一款工具,可以用来翻译手机rom语言…

Android Studio 打不开

现象:点击PC端上Android Studio 图标,没有反应,AS没有打开 环境:windows 11 解决办法: 1、找到任务管理器 2、发现后台进程中,有Android Studio 3、结束该任务。 4、再此点击Android Studio 图标&…

阿里系常用代码规范及工具

1. 前言 1.1 为什么需要代码规范 可能有同学觉得代码需要突出个人的特点,需要特异化,但是这样就会造成别人阅读起来很困难 代码不仅仅是交给机器来执行的,同时代码也是让其他同事来阅读的,如果代码不规范就会出现各种各样的问题&…

vscode:连接服务器进行远程开发调试

以下推荐一个使用远端服务器开发调试的方法,可以让我们像在本地编写调试程序一样简单:使用vscode vscode-remote插件 一、安装SSH 1.windows自带的openssh经测试不可用,建议先安装git,使用git中自带的ssh,方法如下&a…

【STL容器】list

文章目录 一、list定义二、list的迭代器三、list的元素操作四&#xff0c;list的优缺点 一、list定义 list本质是一个双向带头循环链表 template<class T> struct list_node {list_node* prev;T val;list_node* next; };template<class T> class list {typedef lis…

Redis性能压测、监控工具及优化方案

Redis是一款高性能的开源缓存数据库&#xff0c;但是在实际应用中&#xff0c;我们需要对Redis进行性能压测、监控以及优化&#xff0c;以确保其稳定性和高可用性。本文将介绍Redis性能压测、监控工具及优化方案。 01 Redis性能压测 常用的Redis性能压测工具有&#xff1a; …

探秘移动端BI:发展历程与应用前景解析

什么是移动端BI 维基百科 上对于 移动端商业智能的定义是这样的 > Mobile BI is a system that presents historical and real-time information on mobile devices for effective decision-making and management support. It enables analysis on smartphones and table…

DLT645-2007智能电表通讯规约 协议读取数据实战

【本文发布于https://blog.csdn.net/Stack_/article/details/132946097&#xff0c;未经许可不得转载&#xff0c;转载须注明出处】 协议文档&#xff1a;DL-T 645-2007 多功能电能表通信协议 先用电表厂家提供的上位机进行通讯并拦截数据&#xff0c;再对照协议文档进行以下分…