嵌入式学习攻略

嵌入式软件编程的基础

主要是学习编程语言、开发环境和形成自己的编程逻辑,为嵌入式软件开发打下良好的基础,编程语言建议为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.hqwc.cn/news/112540.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机基础】Git系列2:配置多个SSH

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

eNSP网络学习

一、eNSP 1.什么是eNSP eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台,主要对企业网络路由器、交换机进行软件仿真,完美呈现真实设备实景,支持大型网络模拟,让…

statistic learning outlook

supervised learning 贝叶斯估计 决策树与信息熵 信息熵 H ( D ) − ∑ i 1 n p ( X x i ) l o g ( P ( X x i ) ) − ∑ p i l o g ( p i ) H(D)-\sum_{i1}^n p(Xx_i)log(P(Xx_i))-\sum p_ilog(p_i) H(D)−∑i1n​p(Xxi​)log(P(Xxi​))−∑pi​log(pi​),信…

多线程中的Semaphore信号量

在Java多线程编程中,Semaphore是一种用于控制资源访问的机制。Semaphore允许您限制同时访问某个资源的线程数量。这在需要限制并发访问的情况下非常有用,例如数据库连接池或有限数量的线程池。 创建Semaphore 要使用Semaphore,首先需要创建…

Go 语言学习总结(9)—— Go 与 Java 全面对比总结

基本语法格式 Golang: 编码风格相对统一,简单,没有太多的语法糖等,Java层次清晰,全面面向对象。 变量相关 变量的声明及使用 在Java或者PHP、Python中,声明了变量,可以不使用,也不报错。 p…

火山引擎 ByteHouse:ClickHouse 如何保证海量数据一致性

背景 ClickHouse是一个开源的OLAP引擎,不仅被全球开发者广泛使用,在字节各个应用场景中也可以看到它的身影。基于高性能、分布式特点,ClickHouse可以满足大规模数据的分析和查询需求,因此字节研发团队以开源ClickHouse为基础&…

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 创建…

创龙TL6678F开发板: 实现FPGA与DSP之间 SRIO(3.125Gbps, 4x)通信

创龙TL6678F开发板官方Demo:SRIO_AD9613 实现了FPGA和DSP之间的SRIO通信, SRIO的速率为5Gbps. 在FPGA端, srio_gen_2 模块的参考时钟为 125MHz. 而Demo: udp_10g_echo 实现了10G以太网通信, ten_gig_eth_pcs_pma模块的参考时钟为156.25 MHz. 两者共用一个 cdcm61002, 且两个参考…

ssh登录时间久或登陆后报错

情况1 问题描述: ssh登录时间很久,登录后出现abrt-cli status timed out 的报错 问题原因: .lock文件被锁导致 执行systemctl status abrtd.service可以看到被锁的.lock 处理方式: ps -ef | grep pid 找到被锁的进程kill掉…

视觉SLAM(1):orbslam3复现

文章目录 环境依赖安装OpencvPangolinEigen3DBoW2 and g2oPythonboostlibssl-dev ORB_SLAM3的编译和安装数据集测试参考 环境 ubuntu18.04-x86nvidia-3080工作站 依赖安装 Opencv 参考这篇博客。 Pangolin 安装v0.6版本的,最新版会报错 error: ‘slots_refere…

SAP CRM 模块:概述,体系结构

前言 CRM 代表“客户关系管理”,是一组有助于以有组织的方式管理客户关系的方法和工具。 在当今竞争激烈的商业环境中,顶级公司的注意力越来越集中于其最有价值的资产– 客户。 因此,这些公司需要一种合适的软件解决方案来迎合其客户&#…

〔022〕Stable Diffusion 之 生成视频 篇

✨ 目录 🎈 视频转换 / mov2mov🎈 视频转换前奏准备🎈 视频转换 mov2mov 使用🎈 视频转换 mov2mov 效果预览🎈 视频无限缩放 / Infinite Zoom🎈 视频无限缩放 Infinite Zoom 使用🎈 视频转换 / mov2mov 如果想将视频换成另一种风格,或者想将视频中的人物替换掉,…