嵌入式系统启动流程
嵌入式linux的一般启动过程
巡检机器人项目经历
项目背景
在本项目中,我们采用鸟瞰视角的3D视觉算法BEVDet,设计并实现了一款巡检机器人。该机器人主要用于变电站的路径规划和杂物检测,确保变电站的安全和高效运行。
技术选型与部署
3D目标检测算法选取与部署
选择了BEVDet算法,该算法在鸟瞰视角下的3D目标检测中表现出色。
使用TensorRT对模型进行量化,以提高模型的推理速度和效率。
在ROS(Robot Operating System)中部署了BEVDet算法,确保其能够在机器人平台上稳定运行。
ROS节点开发与测试
参与了模型部署ROS节点的编写及测试,确保模型能够在ROS环境中正确运行。
编写了六路海康威视GSM摄像头与算力板的通信及数据采集模块,实现了图像的高效预处理。
数据通信实现
实现了算力板与下层无人车底层控制系统的数据通信,确保了机器人能够根据检测结果进行路径规划和动作控制。
项目成果
路径规划:机器人能够根据BEVDet算法检测到的3D目标,动态规划最优路径,避免障碍物。
杂物检测:机器人能够准确检测变电站内的杂物,及时报告异常情况,确保变电站的安全。
系统集成:通过ROS节 ...
linux-kernel-compile
参考文章
内核模块https://blog.csdn.net/weixin_45093118/article/details/139397775
Linux kernel开发模式
如何构建kernel
获取配套的交叉编译工具链
SOC原厂提供:NXPST Rockchip Amlogic Allwinnertech 等
社区下载:Linrao Debian ARM Bootlin下载kernel源码
获取Linux Kernel主线LTS源码
Git方式获取: git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
压缩版下载: https://mirrors.edge.kernel.org/pub/linux/kernel/获取芯片原厂Kernel源码
Host下配置开发环境
安装必要依赖包
解压配置合适的工具链
指定编译板子配置文件
make BOARDNAME defconfig
编译
编译内核镜像 make -jN
编译设备树 make d ...
arm架构
跟踪日志
2024//
2024//
2024//
参考文章
参考文章https://zhuanlan.zhihu.com/p/666861211
ARM
ARM1 CPU内部运行的原理图
ARM架构,过去称作高级精简指令集机器,是一个精简指令集(RISC)处理器架构家族,其广泛地使用在许多嵌入式系统设计。由于节能的特点,其在其他领域上也有很多作为。ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。另一方面,超级计算机消耗大量电能,ARM同样被视作更高效的选择。
ARM架构版本从ARMv3到ARMv7支持32位空间和32位算数运算,大部分架构的指令为定长32位(Thumb)指令集支持变长的指令集,提供对32位和16位指令集的支持),而2011年发布的ARMv8-A架构添加了对64位空间和64位算术运算的支持,同时也更新了32位定长指令集
至2009年为止,ARM架构处理器占市面上所有32位嵌入式RISC处理器90%的比例[5],使它成为占全世界最多数的32位架构。
产品系列
A - 多运行Linux系统
M - 多用于单片机
ARMv7嵌入式 ...
qemu模拟开发板开发
参考文章
如何配置 QEMU 虚拟机网络https://huaweicloud.csdn.net/6707aefbe2ce0119e0a1e3eb.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NjUyNDYwLCJleHAiOjE3NDA2MjcwNjIsImlhdCI6MTc0MDAyMjI2MiwidXNlcm5hbWUiOiJBX3J1b3NodWkifQ.UvK-zaDEx_il-jNwsV5R23KQ9JmvEZ0mjEbYDA-PcRU&spm=1001.2101.3001.6650.15&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-15-129685202-blog-131290211.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant.n ...
Buildroot
参考文章
Linux发行版列表https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88%E5%88%97%E8%A1%A8
Linux的启动过程
发行版Linux操作系统
Linux发行版(也叫做GNUlinux发行版),为一般用户预先集成好的Linux操作系统及各种应用软件。一般用户不需要重新编泽,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的营理,Linux发行板通常包含了包括桌面环境办公包、媒体播放器、数据车等应用软件。这些保作系统通总由Linux内核、以及来自GNU计划的大量的函数库,和基于x Window或者Wayland的图形界面。
Debian系列
Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为软件包管理器。
旗下最著名的就是Ubuntux系列和国内优麒麟和Deepin
Red Hat系
Red Hat Linux和SUSE Linux是最早使用RPM格式软件包的发行版,如今RPM格式已广泛运用于众多的发行版。
旗下最著名的是CentO ...
无线链路Wifibroadcast
参考文章
参考文章https://zhuanlan.zhihu.com/p/666861211
远程无线编写
通过无线网卡接收带有 radiotap 头的 802.11 数据包,并进行解析、过滤、FEC(前向纠错)、加密解密等处理。我们可以将其划分为几个模块来分析其功能和设计思路。
🧩 模块结构概览
模块
类名
主要职责
接收器
Receiver
负责打开网卡设备、设置混杂模式、过滤特定数据包、循环读取原始数据包
聚合器
Aggregator
负责 FEC 解码、数据包去重、会话密钥管理、丢包恢复等
数据流
-
实际上聚合器还负责将数据流输出到指定的目的地
🔍 Receiver 类详解
构造函数:初始化网卡
Receiver::Receiver(const char *wlan, int wlan_idx, uint32_t channel_id, BaseAggregator *agg, int rcv_buf_size)
使用 pcap_create() 创建一个 pcap 设备。
设置混杂模式(promiscuous mode)、超时 ...
OpenIPC开发文档
跟踪日志
2024/1/9
通过 TFTP 和 UART 逐步安装 OpenIPC 固件。
2024//
2024//
参考文章
参考文章https://github.com/OpenIPC/wiki/blob/master/en/installation.md
说明
核心就是利用网络摄像头,而且网络监控的市场很大,网络摄像头可选择的范围很大,可以根据主控芯片、图像传感器的型号,以及板载的串口(刷鞋固件、通信),USB(连接WIFI网卡)的情况自由选择
我这里选择的是 SigmaStar SsC338Q 分辨率4K@20FPS 内置2Gb DDR3
架构:
我的工作任务:
硬件环境的搭建
openipc固件的烧写
天空端电路搭建
地面端环境的烧写
固件的编译和编译脚本
裁剪的openipc linux内核中执行启动脚本的过程
rtl8812网卡天空端驱动(内核配置的)、rtl8812au地面端驱动(开源项目)
摄像头驱动(开源的),视频编码器(闭源方案)
wfb-ng数据链路
地面端解码方案(安卓、linux、嵌入式开发板)
固件安装
这里是利用的TFTP和UART ...
OpenIPC
跟踪日志
2024//
2024//
2024//
参考文章
参考文章https://zhuanlan.zhihu.com/p/666861211
Linux/Ubuntu20 安装 TP-link(RTL8812AU) 无线网卡驱动https://blog.csdn.net/weixin_46283523/article/details/127072929
主流视频编码器H264、HEVC、AV1之间的视频质量以及编码速度比较https://www.bilibili.com/opus/733259258149208084
参考文献
[1]徐瑶.基于H.264的视频压缩技术及其在视频监控系统中的应用[D].安徽大学
引言
图传系统
无线图传技术即无线图像传输技术,是指不用布线(线缆)利用无线电波来传输图像数据的技术。
工作原理
无线图传技术主要涉及图像采集、编码、调制、发射、接收、解调、解码和图像显示等环节。
图像采集:通过摄像头或其他图像采集设备获取图像信息。这些设备可以是专业的摄像机、监控摄像头、手机摄像头等。采集到的图像通常是模拟信号或数字信号,具体取决于采集设备 ...
bootloader嵌入式芯片启动过程全解析
参考文章
bootloader的全面解析https://blog.csdn.net/qq_51004011/article/details/138376644
STM32 开发必备-内存地址(*****)https://zhuanlan.zhihu.com/p/648904738
STM32、GD32固件升级IAPhttps://blog.csdn.net/RMDYBW/article/details/140552321
什么是Bootloader
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。
BootLoader 起到了桥梁的作用,连接了硬件启动与高级软件运行之间的环节,确保系统能够从一个初始、裸机的状态过渡到一个完整的、可操作的运行环境。
两种Bootloader ...
视频编码技术
参考文章
h.264基础解析https://blog.csdn.net/weixin_60610210/article/details/144188041
默认 提示块标签
default 提示块标签
primary 提示块标签
success 提示块标签
info 提示块标签
warning 提示块标签
danger 提示块标签
视频编码技术
所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。
为什么会有视频编解码技术
通常视频文件都非常庞大,如果直接存储或者传输,那么对内存大小和传输速度的要求将会变的非常高,进而降低用户的体验,也不利于整个生态的发展。
因此为了解决上述问题,才有了视频编解码技术,其通过 ...
无人机研究报告
无人机产业链结构
用途分类
军用无人机:主要用于侦察预警、跟踪定位、军事打击和战场搜救等任务。
民用无人机:包括消费级无人机和工业级无人机,应用于航空拍摄、农林植保、物流运输、环境监测等多方领域。
现代产业结构
无人机产业链上游为无人机设计研发及关键原材料的生产
中游无人机整机制造包括飞行系统、地面系统、任务载荷系统三个方面,是无人机制造的核心部分
无人机产业链下游是无人机的应用场景,应用场景涵盖生活方方面面
无人机重要模块介绍
飞行控制系统(Flight Control System, FCS)
这是无人机的“大脑”,负责控制飞行轨迹、高度和速度等参数。飞控系统通常由控制器、传感器和GPS等组成。
悬停
在悬停状态下,四个旋翼具有相等的转速,产生的上升合力正好与自身重力相等。并且因为旋翼转速大小相等,前后端转速和左右端转速方向相反,从而使得飞行器总扭矩为零,使得飞行器静止在空中,实现悬停状态。
垂直运动
垂直运动是五种运动状态中较为简单的一种,在保证四旋翼无人机每个旋转速度大小相等的倩况下,同时对每个旋翼增加或减小大小相等的转速,便可实现飞行器的垂直运动。
当同时 ...
















