![](https://img-blog.csdnimg.cn/acd4b5560cf34281ac2dbd511de28623.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式系统
文章平均质量分 92
嵌入式系统小实验和项目合集,以及尚未实践的创意合集!
刘清帆
北京大学,
深度学习,海洋探测,IC,嵌入式相关
欢迎交流(真的希望大家多多和我交流,你们的反馈也是发现自己问题重要途径~)
我们一起努力!
展开
-
【Luckfox pico入门记录(二)】ubuntu22.04系统烧录
最近在看智能手表的选型,但是作为一个小白的我,发现要么,不适合作为手表(大多数核心板的面积都在4*4以上,而且而是那种立着的天线。而Luckfox因为其体积小还在我的备选列表内。但是Luckfox自带的busybox非常low,然后交流群里有大佬尝试用buildroot自定义了文件系统(比如加入了python),整合进luckfox的sdk中进行重新编译(但是这个我暂时还没有成功)。也有大佬直接发出来了移植成功的ubuntu22.04(我刚刚试验了一下成功了),所以先来讲一下这个。下面正式开始。原创 2023-10-29 21:44:27 · 1594 阅读 · 5 评论 -
【Luckfox pico入门记录(一)】开发环境与工具链
最近刷bilibili发现微雪电子关于luckyfox pico的介绍视频,感叹linux开发板居然可以把价格缩到100RMB以内,也正巧结束了复旦微比赛,受够了FM33LC046N的低性能,来玩点便宜又高性能的板子。开发板型号:luckfox pico max开发环境:Ubuntu 22.04。原创 2023-10-06 20:07:27 · 4180 阅读 · 2 评论 -
【屏幕驱动移植】点亮OLED屏幕并播放视频
硬件软件准备: 因为在嵌入式系统中,由于硬件的多样性,移植驱动是常见的事情,本文适合作为驱动移植的小练习。个人认为,驱动移植主要考察读代码和修改代码,说白了就是把别人写好的东西搬运一下,然后将其修改以适应目标平台,使目标平台可以成功运行,就完成了移植的工作。 整体思路:就是我买来了一块屏幕,然后一般买一个设备,厂家会提供datasheet,甚至使一些开发文件。如果仅仅有datasheet,要么就自己写驱动,要么就去网上找下载驱动。如果厂家提供了,那么就可以移植。这里厂家是给我提供了驱动资料的,但是我原创 2023-01-11 20:16:25 · 2060 阅读 · 3 评论 -
【Linux C编程】(一)POSIX多线程及读写优先算法
参数1:指向pthread_t的指针或者地址,pthread_t是pthread库定义的数据类型,用来引用线程。参数3:线程函数,需要定义为void *类型,返回指向空的指针.并且在传入时要转换成void * 类型。(或者在Cmake中使用target_link_libraries)参数4:传递的参数,直接传入指针。多个参数传入结构指针。这是Linux C的多线程库,需要添加头文件。同时编译时需要链接库。terminal执行。原创 2022-11-29 22:03:57 · 331 阅读 · 0 评论 -
【从零到一的Raspberry】数莓派踩坑实录(二) 内核编译配置和模块安装
本次作业具有挑战性,不过不管哪一环节出错了,你都要知道如何把它还原到初始状态,这样你就不是在危险地操作,而有还原的保障.因此在第0节我会介绍一种还原数莓派系统的方法,大家可以仔细看一下,也可以直接看红字,跟着红字操作,你就可以在内核无法运行时还原到默认系统!后面从第一章开始,带序号的小节会指引你完成本次"内核裁剪"作业.加油!【声明】:本文章核心内容主要参考数莓派官方网站,一切以官方网站上的指令为准,敬请访问【NOTE】:如果你想要着手快速开始,请直接到序号索引的小节。原创 2022-11-10 02:11:15 · 974 阅读 · 4 评论 -
【RP2物联网实战(一)】C/C++&FreeRTOS版
树莓派pico,又称为RP2,其开发方式多种多样,有C语言和micropython语言,工具有cmake,vscode,arduino,thonny等,本版主要使用的工具链是VsCode结合cmake、官方提供的SDK——pico-sdk和移植的FreeRTOS。交叉编译踩坑指北现在默认你已经完成了环境的搭建,让我们来概括性的认识一下我们所搭建的工具链。因为文档比较长,秉承着用到哪学哪的理念,我使用较多的为gpio、time还有adc功能。函数功能初始化管脚设置gpio方向输出高/低电平。原创 2022-11-06 15:19:56 · 2277 阅读 · 0 评论 -
【从零到一的Raspberry】树莓派踩坑实录(一)系统安装与简单开发
本系列作为树莓派上手记录,同时将本人的踩坑以及参考进行记录汇总,必要时罗列出小组分工,作为《嵌入式软开》小组参考文件。原创 2022-10-26 09:58:51 · 2049 阅读 · 0 评论 -
【交叉编译踩坑指北(四)】VScode构建数莓派Pico的FreeRTOS系统
我们在第二章和第三章中分别讨论了在windows x86平台下和linux x86平台下使用CMake实现交叉编译,成功点亮数莓派.由此可见CMake强大的跨平台功能.因此,后面的章节仅以一种平台为例,如果想要使用另一种平台或者其他平台(如MacOS),相信你参考前面的章节也可以快速迁移学习.原创 2022-10-18 19:22:36 · 1084 阅读 · 0 评论 -
【交叉编译踩坑指北(三)】Linux下VScode构建数莓派Pico开发环境
第二章表明,arm-none-eabi工具虽然单独使用会报错,但是只要结合CMake就可以正常使用.而Window系统下,使用CMake调用,那么是不是可以在Linux下使用CMake调用Linux原生make(即)构建目标文件呢?这个问提就好比出发点相同(都是CMake),中间的路可能有区别(一个是MInGW Makefiles一个是Unix Makefiles),但最终目标一样(都是调用arm-none-eabi-gcc/g++进行编译),按照道理来说大同小异.这也符合CMake跨平台的特性.原创 2022-10-18 14:00:21 · 1024 阅读 · 0 评论 -
【交叉编译踩坑指北(二)】windows10下VScode构建树莓派pico开发环境(C/C++)
许多树莓派C/C++开发都依靠NMake以及PicoProjectGenerator,安装配置NMake较为麻烦。需要安装VisualStudio 生成工具,并且安装文件夹下有很多版本的nmake需要筛选,暂时没有解决。因此本章主要使用windows中常用编译C/C++的mingw工具链(包括了mingw下的gcc,make以及gdb等),包括MinGW Makefiles来进行树莓拍Pico C/C++开发。这也沿袭了第一章中的mingw使用,具有一致性。原创 2022-10-18 01:36:12 · 4304 阅读 · 2 评论 -
【交叉编译踩坑指北(一)】windows10下Vscode与Cmake编译生成文件
CMake是一个跨平台的Makefile生成工具cmake执行CMakeLists.txt生成Makefiles,然后make执行Makefiles,调用Makefiles中一系列gcc编译生成可执行的目标文件在这个过程中,make有不同的工具,gcc也有不同的工具,因此在整个工具链中需要进行配置。例如如果是生成windows可执行文件,Cmake就要配置生成MinGW Makefiles,执行Makefiles要选择mingw32-make,编译器要选择x86_64-w64-mingw32-gcc。原创 2022-10-17 14:46:54 · 5198 阅读 · 0 评论 -
【嵌入式开发工具】Makefile和Cmake
但是加入头文件中有一些宏定义,例如。判断这个目标是否存在,若这个目标已经存在了,并且它的依赖文件即main.o和primejudge,o文件的时间戳比div2prime更老,则不再进行连接生成文件。如果对其进行修改,改成2,再执行make的话,make并不会编译连接新的文件,这是因为没有把这个.h的头文件加入到依赖关系中来,Makefile就无法根据其时间戳的规则来决定是否要重新编译连接。可以在命令行中观察到哪些块中的命令被执行了,也可以看到其执行顺序,进一步证实了上述根据依赖关系的Make执行顺序。原创 2022-10-03 20:10:01 · 2238 阅读 · 0 评论 -
【嵌入式C编程】keil图像旋转仿真
可以看到,其中第一部分和第三部分都是在嵌入式系统外进行操作的,这里选择采用python脚本进行处理,因为python具有强大的numpy库方便对文件以及图像矩阵进行大量处理,此外还有PIL库方便图像显示。随便打开一个hex文件,其部分如下图,在debug运行之前,需要在memory map中对我们使用到的存储图像的空间进行初始化申请,否则会出现无法进入main函数,跳入软件中断的情况。因此,在main.c函数中加入了简单的插值函数,即某一点若值为0,则把其上下左右四个点的均值作为其灰度值,并进行刷新。原创 2022-09-22 19:00:18 · 1093 阅读 · 1 评论