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

嵌入式秋招必备项目(一):简单介绍

前言如果你在学习完RTOS相关的知识后,为进一步的应用感到苦恼?或者简历上空空如也,感觉没项目可写?那你可算来对的,在这个仓库里的项目是我的简历上的一段项目经历这段项目经历在秋招的时候还是很靠谱的(经历过华为、中兴、小米、大疆、小鹏等企业的拷打,而且对项目的反馈都还不错),我会在接下来对这个项目里的内容进行拆分讲解,不仅讲实现,而且把部分面试问题插入其中(印象比较模糊了QAQ),还会讲一下其它可能会问到的问题。希望对以后的你招聘有帮助(当然简历怎么写就不会告诉你啦 .)。项目地址:https://gitee.com/Lumin_ChaLearn/BOOTCSDN博客地址:https://blog.csdn.net/qq_45731845/article/details/160327453项目架构APP文件夹(RTOS环境) QT上位机这是一个基于ov2640的网络图传摄像头,用到的技术栈主要有:LWIP QT RTOS 自定义通信协议(既然都用TCP还要额外定义一个通信协议,是不是在多次一举?好吧确实是,不过学习嘛就得重复造轮子)QT上位机实现一个TCP链接和图传的显示(AI太好用了你们知道吗?我完全没学过QT),代码是前年的AI写的,emmm现在来看还是有点丑陋,几乎没有参考意义LWIP基于以太网接口的LWIP协议栈移植,底层就是参考正点原子给的例程就行自定义通信协议在这个项目里只是这个协议的一个实例化,更加完整的实现可以参考 /主机程序/protocol文件夹下内容,内是一个在linux下的实例代码。这个自定义的通信协议可以实现如下功能:校验(可选):包括包数校验,CRC校验等超时重传机制应答机制全双工通信自定义通信帧格式,可实现自动分包发送ov2640驱动基本就是正点原子的例程,不过在这里做了进一步的封装,因为原来的例程里各种extern感觉不太好看时间同步文件夹 和 TimeSync文件夹(RTOS环境)这俩好像是一个工程?年代有点久远了。具体来说是基于udp的multi-broadcast机制和stm32的MAC控制器的硬件时间戳实现的微秒级时间同步,具体可以直接看之前的博客:https://blog.csdn.net/qq_45731845/article/details/152609468?spm1001.2014.3001.5502marvell88w8801文件夹(RTOS环境)marvell88w8801是一个SDIO WIFI模块,可以在网上找到大量基于SDIO驱动的实现,不过基于SPI通信的很少,而我的板子正好SDIO引脚被占用了,所以我结合现有资料实现了一个SPI驱动的marvell88w8801模块,具体功能如下:RTOS支持。之前的实现很多是在裸机下的,这里给出了在RTOS下的实现参考LWIP协议栈移植。因为此时底层不是以太网而是这个WIFI模块,要做好LWIP协议栈的移植DMA中断的驱动模式。不是轮询,而是通过SPI DMA 中断,减少对CPU不必要占用基于zephyr的SPI驱动系统移植。对SPI通信的进一步封装(重复造轮子,就当学习一下)SPI驱动下的SDIO协议实现。参考正点原子的代码做了一些改进WIFI具体功能实现,这里也是参考了https://github.com/sj15712795029/stm32_sdio_wifi_marvell8801_wifi代码Bootloader文件夹(裸机环境)实际上你会发现上述几个工程的.sct文件都被我改了,原因是我想测试我的Bootloader的实现的正确性Bootloader里的具体功能如下:支持串口(DMA)和以太网两种升级模式,具体的服务器代码可以参考 /主机程序/*.py文件支持A/B分区,当APP新分区运行出现问题,自动跳转旧分区保证稳定性支持数字签名验签(基于RSA-2048),可以对APP的数字签名进行验签工作(基于mbedtls库),生成数字签名可以参考 /主机程序/enctrypt_app传输过程支持AES加密,进一步提高传输可靠性协议层基于Ymodem协议实现,保证数据包的有效性,提供了一个Ymodem协议的封装支持APP错误校验、超时自动跳转、崩溃现场打印等功能TEST_APP文件夹(裸机环境)纯测试用,就是让PC指针指向空触发错误,看看Bootloader能否正确处理SD_LFS文件夹(RTOS环境)这个是一个我觉得很杂但是很有参考的工程(),挺有意思的,具体功能如下一个基于链表的简单shell。(今年AI写的,明显比前年的AI有进步),支持指令动态注册与反注册基于SD卡(SDIO驱动) LittleFS 的掉电安全日志系统。如果你需要一个掉电安全的日志系统,可以参考一下这部分的代码。同时配合https://gitee.com/eming/LittleFS-Explorer-for-Windows 就可以实现在windows下查看日志(非常方便),通过shell指令也可以访问到日志系统。同时还支持崩溃现场转储一个基于状态机的按键驱动(到时候面试问按键消抖不要在delay啦)多级日志串口打印系统(这个很常用,设置不同打印等级打印不同日志)支持和Bootloader的相互跳转以及看门狗结语后面我将逐步为这些工程编写博客,如果对你有帮助还请多多收藏点赞啦

相关文章:

嵌入式秋招必备项目(一):简单介绍

前言如果你在学习完RTOS相关的知识后,为进一步的应用感到苦恼?或者简历上空空如也,感觉没项目可写?那你可算来对的,在这个仓库里的项目是我的简历上的一段项目经历,这段项目经历在秋招的时候还是很靠谱的(经历过华为、中兴、小米、大疆、小鹏等企业的拷打,而且对项…...

C# OnnxRuntime 部署 DAViD 表面法线估计

目录 效果 模型信息 项目 代码 下载 效果 模型信息 Model Properties ------------------------- metadata:{} --------------------------------------------------------------- Inputs ------------------------- name:input tensor&#xff1…...

Kubernetes 生产环境调试安全最佳实践:2026 年完整指南

Kubernetes 生产环境调试安全最佳实践:2026 年完整指南 摘要:在生产环境中调试 Kubernetes 集群是每个 DevOps 工程师和 SRE 的日常工作。然而,传统的调试方法往往依赖宽泛的集群管理员权限、共享跳板机或长期有效的 SSH 密钥,这些…...

Halcon轮廓分割进阶:segment_contours_xld的‘两步逼近’算法原理与参数调优实战

Halcon轮廓分割进阶:segment_contours_xld的‘两步逼近’算法原理与参数调优实战 在工业视觉检测领域,轮廓分割的精度直接影响着后续几何特征提取的准确性。Halcon作为机器视觉领域的标杆软件,其segment_contours_xld算子通过独特的"两步…...

告别商业EDA?在Ubuntu 22.04上配置开源EDA工具链:Yosys + GTKWave + iverilog

开源EDA工具链实战:在Ubuntu 22.04上构建YosysGTKWaveiverilog全流程环境 当我在大学实验室第一次接触FPGA开发时,商业EDA软件动辄数十万的授权费用让我震惊。直到发现开源EDA工具链,才意识到原来芯片设计可以如此"平民化"。本文将…...

[嵌入式系统-261]:设备管理中的几个核心概念:设备名称、设备文件描述符、主设备号(主设备号与次设备号)以及他们之间的关系

在 Linux 操作系统中,设备管理遵循“一切皆文件”的设计哲学。为了让你清晰地理解这些核心概念及其关系,我们可以把设备管理看作一个“查快递”的过程。以下是设备名称、设备文件描述符、主设备号和次设备号的详细解析及它们之间的协作关系。1. 核心概念…...

保姆级教程:手把手教你用QFIL救活高通9008端口变砖的手机(附常见错误日志分析)

高通9008端口救砖全指南:从QFIL操作到日志分析实战 当你的手机因刷机失败、系统崩溃彻底变砖,连开机画面都消失时,高通9008端口往往是最后的救命稻草。作为芯片级修复模式,它绕过了所有系统层限制,允许直接与处理器通信…...

【网络基础科普】交换机 MAC 地址全解析:查询方法、System MAC 与 Bridge MAC 的区别,以及“为什么只差 1”

一、背景:为什么要搞懂交换机 MAC? 在很多网络运维场景中,查询交换机 MAC 地址是刚性要求: 从资产台账、合规审计,到故障排查与网络设计,MAC 地址都是基础且关键的数据。 本文从真实运维背景出发&#xf…...

《SAP FICO系统配置从入门到精通共40篇》039、FICO配置传输管理(CTS)与版本控制:那些年我们追过的传输请求

039、FICO配置传输管理(CTS)与版本控制:那些年我们追过的传输请求一、凌晨三点的紧急电话 上个月某个深夜,手机突然狂震。客户生产系统的一个关键成本中心会计凭证突然报错,追溯后发现是某个成本要素类别配置被意外覆盖…...

2026最稳代练创业项目:三角洲护航系统——全端部署+智能匹配,破解获客与信任难题

一、项目核心价值:低成本搭建,100%利润掌控 传统代练模式依赖第三方平台抽成(20%-50%),利润被严重压缩。而三角洲护航系统基于UniAppThinkPHP6架构,支持微信小程序、H5、APP、PC端多端同步,创业…...

解锁论文“黑科技”:书匠策AI带你玩转期刊论文全流程

在学术的江湖里,期刊论文就像是一张通往学术殿堂的“入场券”,每一位学者都渴望凭借高质量的论文在学术舞台上崭露头角。然而,论文写作的过程却充满了挑战,选题迷茫、文献整理繁琐、结构混乱、格式错误……这些问题常常让学者们焦…...

告别手动布线烦恼:用Allegro快速布局STM32核心板的5个高效技巧

告别手动布线烦恼:用Allegro快速布局STM32核心板的5个高效技巧 在嵌入式硬件开发中,PCB布局往往是项目进度中最耗时的环节之一。特别是对于STM32这类功能丰富的主控芯片,如何高效地完成核心板布局,同时保证信号完整性和可布线性&a…...

别光会explain()了!Spark 3.0+ 中这几个隐藏的执行计划模式更实用

解锁Spark执行计划的隐藏模式:超越explain()的高级调试技巧 当你在Spark作业遇到性能瓶颈时,是否还在反复查看基础explain()输出却找不到头绪?作为数据工程师,我们常常陷入这样的困境:明明知道执行计划很重要&#xff…...

GD32F103串口调试:从printf重定向到中断收发,一个工程搞定所有(附完整代码)

GD32F103串口工程实战:从printf重定向到中断收发的完整解决方案 刚拿到GD32F103开发板时,串口调试往往是第一个需要攻克的难题。如何快速搭建一个稳定可靠的串口通信环境?本文将带你从零开始构建一个完整的串口工程,涵盖printf重定…...

z z z z z z z z z z z z z z z

z z z z z z z z z z z z...

q q q q q q q q q q q q q q q q q q q

q q q q q q q q q...

w w w w w w w w w w w w w

w w w w w w w w w w w...

010、展望:架构演化的逻辑与未来——效率、智能与硬件协同设计之路

昨天深夜调一个BERT模型部署,显存又爆了。盯着监控面板上那条陡峭的曲线,我忽然想起三年前同样的场景——那时候我们还在争论要不要上Transformer。从BERT到GPT,再到最近冒出来的Mamba,这条演化路径背后到底藏着什么逻辑?今天不聊具体代码,咱们聊聊这条路上的风景和还没修…...

JavaScript中严格模式use-strict对引擎解析的辅助

严格模式不是语法糖,而是启用更严谨的解析执行模式,提前报错、明确作用域、规范this绑定、禁止危险操作,为引擎优化提供确定性前提。严格模式("use strict")不是语法糖,而是告诉 JavaScript 引擎…...

CSS如何优化移动端响应式断点设置_利用移动优先策略编写代码

移动端断点不能照搬桌面尺寸,因现代设备的视口缩放与物理像素脱钩;应基于内容溢出临界点,用 min-width 递增式增强,配合正确 viewport 设置(widthdevice-width),避免历史固定值和 max-width 覆盖…...

从逻辑漏洞到清晰闭环:用流程图思维提升你的PRD文档质量(附避坑清单)

从逻辑漏洞到清晰闭环:用流程图思维提升你的PRD文档质量(附避坑清单) 在互联网产品开发中,PRD文档的质量往往决定了整个团队的协作效率。我们常遇到这样的场景:开发过程中突然发现某个关键流程存在逻辑断点&#xff0c…...

CSS如何实现列表项序号自定义_利用--before与content实现

当list-style-type无法满足自定义序号需求时,应改用::beforecontent配合CSS计数器;需设置counter-reset、counter-increment,并在content中引用counter(),支持前缀、图标、嵌套及无障碍阅读。list-style-type 不能满足自定义序号时…...

别再只用view了!微信小程序text组件的5个隐藏用法,让你的页面排版更专业

微信小程序text组件的5个高阶玩法:从排版细节到交互设计 在微信小程序的开发过程中,text组件往往被视为最简单的元素之一——仅仅用于展示静态文本。但如果你也这样认为,那么你可能错过了这个基础组件75%的实用功能。今天,我们将突…...

从STM32转战航顺HK32F030MF4P6:定时器配置的那些“坑”与避雷指南

从STM32转战航顺HK32F030MF4P6:定时器配置的那些“坑”与避雷指南 作为一名长期使用STM32的开发者,初次接触航顺HK32系列时,往往会带着STM32的思维惯性去配置外设。这种经验复用本应是优势,但在定时器这类对细节敏感的外设上&…...

老队员的建议:怨天不由人,收获在自己

简 介: 【】一位往届选手针对智能车竞赛自制车模争议提出建议:1)反对因自制车模被超越而要求改规则的行为,认为应通过提升设计水平公平竞争;2)强调比赛"立足培养"的宗旨应兼顾基础薄弱学生&#…...

【Dify 2026插件开发权威指南】:零基础到生产级自定义插件的7大核心实践与避坑清单

第一章:Dify 2026插件生态全景与开发范式演进Dify 2026标志着插件架构从“能力扩展”迈向“智能协同”的关键跃迁。其插件生态不再局限于API代理或简单工具封装,而是以统一的语义契约(Semantic Contract)为基础,支持跨…...

通用ADC芯片测试:其TSSOP16、QFN16封装与德诺嘉电子芯片测试座角色应用

在车规级电子(如车载传感器、电池管理系统)与医疗电子(如便携式诊断设备、生命体征监测仪器)领域,通用ADC(模数转换)芯片作为模拟信号与数字信号的“桥梁”,其性能直接决定设备的数据…...

iFakeLocation:iOS设备虚拟定位的终极指南,免费跨平台解决方案

iFakeLocation:iOS设备虚拟定位的终极指南,免费跨平台解决方案 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 想要在iOS设备上自由…...

STM32串口调试流程讲解

目录 一、串口调试介绍 二、XCOM以及驱动程序安装 1.XCOM图 2.CH340图 三、硬件连接 四、代码讲解 五、调试结果 六、资料获取 项目分享 一、串口调试介绍 调试是指在嵌入式开发过程中,通过一定的手段和方法,对硬件与软件进行测试、验证与问题排…...

FutureRestore-GUI 2025版:图形化iOS降级终极解决方案

FutureRestore-GUI 2025版:图形化iOS降级终极解决方案 【免费下载链接】FutureRestore-GUI A modern GUI for FutureRestore, with added features to make the process easier. 项目地址: https://gitcode.com/gh_mirrors/fu/FutureRestore-GUI FutureResto…...