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

GitHub 上有什么嵌入式方面的项目?

原文直达,喜欢就点个赞吧!

GitHub 上有什么嵌入式方面的项目? - CodeAllen的回答 - 知乎 https://www.zhihu.com/question/27835930/answer/2871624679


前言

对于GitHub,可能做互联网开发的同学会更加熟悉,尤其是前端,后端,安卓开发等技术,GitHub甚至都算是写代码必备的工具了。

而对于嵌入式,因为其软硬件一体的特点,其实项目总量和受关注度都要差很多,但是相对于个人来说,还是有海量的可参考资料的。

我从上大学到工作差不多十年的时间都在从事嵌入式方向,同时也收藏了很多GitHub上的好的资源,总结下做下记录,也分享给需要的同学。

正文

总结毕竟是有限的,这里也只放了部分,大家可以知道方向后自己在GitHub搜索,这里推荐一篇文章,自己学会方法才是王道。

73个GitHub高级搜索技巧_执章学长的博客-CSDN博客_github搜索技巧

还有一些我收藏的嵌入式网站,其实这个比单纯的项目更加有用。

单片机、嵌入式的大神都平时浏览什么网站? - 知乎

值得收藏的嵌入式项目:

1.Awesome-IoT-Resources ★★★

精选物联网资源的精彩集合(书籍、教程、博客、播客),资源收集非常多且全,还有很多嵌入式知名项目的网址,可以直达,非常推荐。

GitHub - theepiccode/Awesome-IoT-Resources: An awesome collection of curated IoT resources(Books, Tutorials, Blogs, Podcasts, ...)

2.嵌入式经典书籍分享,这是知乎用户 @科岩 同学维护的项目, 包含的主要是嵌入式方向学习需要的书籍资源,非常推荐需要的同学自取。

GitHub - imKeYan/EmbedBooks: 嵌入式经典书籍分享,C程序员常读书单整理,含下载地址,成体系提升技术能力。书籍资源包括电子基础、C/C++、Arm架构、Linux、网络、设计模式、各类行业报告等等。

3.RT-Thread RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。

而操作系统其实就是嵌入式开发的核心,所以可以多研究一下。

GitHub - RT-Thread/rt-thread: RT-Thread is an open source IoT operating system.

4.CMSIS DAP 升级版(DAPLink)

这个用过野火电子家开发板的同学应该知道,之前大家都是用ST-link居多,而DAPLink是软硬件开源的,立创EDA上也有开源项目,有同学还魔改为了无线下载器,还是很实用的开源项目。

GitHub - ARMmbed/DAPLink

5.DreamSourceLab(梦源科技)逻辑分析仪

我第一次基础梦源科技是我毕业的第一年(2017),单位有个他们家的逻辑分析仪,很小巧精致,插上传输线电脑就变为了屏幕,这个对于当时的我来说还是很有冲击的,然后就一直关注着他们。

他们的逻辑分析仪,从FPGA源代码、MCU固件到Qt上位机都是开源的,现在产品比我了解的又多了不少。

DreamSourceLab (DreamSourceLab) · GitHub

6.Arduino

这个不必多说,Arduino的影响力其实已经超脱了嵌入式,我也一直认为Arduino是非常成功的开源硬件,它让很多一点不懂技术的人也可以享受创意的快乐,丰富的开源软件和项目,稳定的硬件都是非常好的学习平台。

Arduino · GitHub

7.Lua

Lua是我之前在学校做项目的时候用到的,很多同学可能比较陌生,奇怪Lua和嵌入式的关系,Lua完全是由C开发的脚本语言,所以他对于C语言项目兼容非常好,这两点就使其在嵌入式开发的时候作用很大。比如对于需要经常更改的参数,如果使用C语言就需要经常编译固件下载固件,这显然不合适,而对于这部分可以使用Lua,只需要保留接口给使用人员,输入改动即可直接运行。

举个例子,比如超市的收银机,经常需要打折计费,你有想过是怎么实现的吗?

GitHub - lua/lua: The Lua development repository, as seen by the Lua team. Mirrored irregularly. Please DO NOT send pull requests. Report issues in the Lua mailing list https://www.lua.org/lua-l.html

8.ardupilot

终于到了我的老本行,其实GitHub上关于无人机的开源项目很多,当然这并不只适用于无人机(从传统飞机、四翼飞机、多旋翼和直升机到漫游车、船只、平衡机器人,甚至潜艇),ardupilot是一个开源自动驾驶仪软件项目。它一直由专业工程师、计算机科学家和社区贡献者组成的多元化团队开发。

非常值得学习控制或者自动化的同学参考,真的都是好东西。

GitHub - ArduPilot/ardupilot: ArduPlane, ArduCopter, ArduRover, ArduSub source

9.Avem

接上边,既然说无人机了,在介绍一个轻量级无人机飞控项目。

我在学校的时候搞过很多四轴无人机,但是资料都是零零散散的,这个Avem项目就是比较全的一个,主控是stm32f103,非常通用也很好理解,比较推荐学习。

GitHub - avem-labs/Avem: 🚁 轻量级无人机飞控-[Drone]-[STM32]-[PID]-[BLDC]

10.FreeModbus_Slave-Master-RTT-STM32

对于设计工控的同学对于modbus应该比较熟悉,我是工作第一年的时候公司有个支线项目,做气象监控平台,用到的传感器都是modbus协议,所以开始使用学习。

分享的这个项目概述:

FreeModbus是一款开源的Modbus协议栈,但是只有从机开源,主机源码是需要收费的。同时网上也没有发现比较好的开源的Modbus主机协议栈,所以才开发这款支持主机模式的FreeModbus协议栈。

GitHub - armink/FreeModbus_Slave-Master-RTT-STM32: Add master mode to FreeModbus. | 在 FreeModbus 中添加主机模式

11.linux

这是由林纳斯大神维护的项目,嵌入式虽然涉及非常广泛,但是Linux绝对在里边在一席之地,当然Linux远不止嵌入式方向一个应用,对于嵌入式人可以学习Linux内核的精华用于开发之中。

当然就像很多讲Linux的书籍一样,不用从最新的内核入手,可以回退到老的版本更加容易学习。

GitHub - torvalds/linux: Linux kernel source tree

未完待续。。。

相关文章:

GitHub 上有什么嵌入式方面的项目?

原文直达,喜欢就点个赞吧! GitHub 上有什么嵌入式方面的项目? - CodeAllen的回答 - 知乎 https://www.zhihu.com/question/27835930/answer/2871624679 前言 对于GitHub,可能做互联网开发的同学会更加熟悉,尤其是前端&#xff0…...

【C语言进阶】结构体、位段、枚举和联合

👦个人主页:Weraphael ✍🏻作者简介:目前是C语言学习者 ✈️专栏:C语言航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&a…...

markdown和latex常用部分参考@注脚@链接跳转@csdn

文章目录refmarkdown和latex常用部分参考typora文档基础语法扩展语法链接内联链接的方式将链接提取出来链接示例typora的支持LinksInline LinksInternal Links🎈Reference LinksURLs文章内部跳转(Heading IDs)🎈My Great Heading注脚(Footnotes)&#x1…...

Java 在二叉树中增加一行

623. 在二叉树中增加一行中等给定一个二叉树的根 root 和两个整数 val 和 depth ,在给定的深度 depth 处添加一个值为 val 的节点行。注意,根节点 root 位于深度 1 。加法规则如下:给定整数 depth,对于深度为 depth - 1 的每个非空树节点 cur…...

kubernetes(k8s) 知识总结(第2期)

1. “控制器”思想 kube-controller-manager 是一系列控制器的集合,这些控制器被放在 Kubernetes 项目的 pkg/controller 目录,这些控制器都以独有的方式负责某种编排功能。它们都遵循一个通用的编排模式——控制循环。 以 Deployment 为例介绍它对控…...

windows-Mysql的主从数据库同步设置

复制原有的mysql修改my.ini配置文件 修改端口号修改从数据的地址和从数据库的数据存放地址安装从数据库进入从数据库的bin目录,打开命令窗口输入命令:mysqld.exe install mysql-back --defaults-file "C:\ProgramData\MySQL\MySQL Server 5.7-back\…...

Docker逃逸

文章目录原理环境搭建Docker 环境判断Docker 容器逃逸特权模式逃逸如何判断是否为特权模式逃逸docker.sock挂载逃逸逃逸Remote API未授权访问未授权访问逃逸容器服务缺陷逃逸影响版本环境搭建逃逸脏牛漏洞逃逸参考原理 docker其实就是一个linux下的进程,它通过Name…...

k8s项目部署

k8s命令k8s项目部署部署流程实现导出相应的yaml文件 kubectl create deployment 名字--image镜像-o yaml --dry-runclient > 文件名 例: kubectl create deployment nginx --imagenginx -o yaml --dry-runclient > m1.yaml导出已经部署后的yaml文件 kubectl g…...

Modbus通信协议学习笔记

Modbus主从设备 主控设备(Modbus Master):工控机、PLC、触摸屏等等 从设备(Modbus Slave):PLC、Modbus采集模块、带485通讯的传感器、仪器仪表等等 Modbus物理接口:串口(RS232、RS4…...

ubuntu重启、关机命令

// // // //之前用linux系统, 一键解决也是可以的,反正我每次用命令(泪目…),中间崩了好几次,换回win,此篇也做记录 // // // 重启命令 以下所有命令在root根目录下输入(普通用户&…...

Xshell 7 连接云服务器的步骤和出现的错误

一、工具准备云服务器Xshell 7二、使用 Xshell 7 连接数据库三、新建会话属性后,没有自动弹出 SSH 用户名要求输入四、SSH 用户身份验证不能输入 Password五、Xshell 连接 centos 7 服务器 报错提示 “ssh服务拒绝了密码,请再试一次“,但是密…...

Python多进程同步——文件锁

多个进程共享同一份资源(共享内存、文件等)时,会涉及到资源竞争问题。为了解决这种问题,一般采取的措施是进程在访问资源前加锁保护,避免多个进程同时读写。本文介绍的Python文件锁可以用来解决多进程的同步问题。 目录…...

实现 element-plus 表格多选时按 shift 进行连选的功能

前言 element-plus表格提供了多选功能,可单击勾选一条数据,可全选。 现在有个很合理的需求,希望实现类似于文件系统中shift连续选择功能,并且在表格排序后,依照排序后的顺序连选。 一、el-table 多选表格基本使用 1、…...

华为OD机试真题JAVA实现【考古学家】真题+解题思路+代码(20222023)

🔥系列专栏 华为OD机试(JAVA)真题目录汇总华为OD机试(Python)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出示例一输入输出说明示例二输入输出说明...

Spring3之基于Aspect实现AOP

简介 使用 Aspect 搭配 Spring 可轻松实现 AOP;本章将通过一个完整示例演示如何实现这一功能 实现步骤 修改 beans.xml 配置文件的 schema 部分;可以在 spring-framework-reference.html 文件通过搜索关键字 “/aop” 找到配置 schema,然后…...

buctoj-寒假集训进阶训练赛(二十二)

问题 A: Stones 题目描述 由于自行车状态错误,森普尔开始每天早上从东到西走,每天晚上走回去。走路可能会有点累,所以森普这次总是玩一些游戏。 路上有很多石头,当他遇到一块石头时,如果是他遇到的奇数石头&#xff0…...

华为OD机试真题JAVA实现【静态扫描最优成本】真题+解题思路+代码(20222023)

🔥系列专栏 华为OD机试(JAVA)真题目录汇总华为OD机试(Python)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出描述示例一输入输出说明示例二输入输出说明...

汽车装配工厂立库物料运送线PLC无线应用

一、应用背景此次项目地在比亚迪的西安工厂,需要实现PLC无线通讯的地方是汽车厂的立体仓库物料运输线。生产物流担负运输、存储、装卸物料等任务。汽车制造业是典型的多工种、多工艺、多物料的大规模生产过程,因此原材料与零部件必需及时准确送至工位&am…...

Python雪花代码

前言 用python画个雪花玩玩,源码在文末公众号哈。 雪花类 class Snow(): #雪花类 def __init__(self): self.r 6 #雪花的半径 self.x ra.randint(-1000,1000) #雪花的横坐标 self.y ra.randint(-500,5…...

Numpy基础与实例——人工智能基础

文章目录一、Numpy概述1. 优势2. numpy历史3. Numpy的核心:多维数组4. 内存中的ndarray对象4.1 元数据(metadata)4.2 实际数据二、numpy基础1. ndarray数组2. arange、zeros、ones、zeros_like3. ndarray对象属性的基本操作3.1 修改数组维度3…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【机器视觉】单目测距——运动结构恢复

ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛&#xf…...

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

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

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

C++使用 new 来创建动态数组

问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...