- 博客(13)
- 收藏
- 关注
原创 FreeRTOS学习笔记(四)
任务二执行一段时间后,任务三开始执行,当任务三需要信号量,而此时信号量被任务一占用,任务一又被任务二阻塞,不能释放信号量,因此此时任务三会在申请信号量时被阻塞,所以调度器会执行任务二,当任务二执行完成后,任务三还没有得到信号量还是在被阻塞,执行任务一,最后才是任务三。这个函数可能很长时间才返回,在函数的内部实现了任务切换。假设有三个任务,任务一的优先级为1,任务二的优先级为2,任务三的优先级为3,并且任务一与任务三需要信号量,任务二不需要,且他们的执行顺序为任务一->任务二->任务三。
2025-03-18 10:12:33
789
原创 Can相关知识
在板级上进行编程,而不用把芯片拆下来放到烧写器中,即不脱离系统,所以称作“在系统编程”,它是对整个程序的擦除和写入,通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程。App程序内使用串口中断来接收数据看是否需要更新,在接收到更新消息后,首先会把ota标志位置为1,然后将相关信息重新计算crc校验码,并烧入param内,然后复位重启,再重启过后进入bootloader,bootloader读取param内信息,检测到需要进行固件更新,然后通过ota进行固件升级。由芯片内部can外设负责。
2025-03-05 13:04:47
1283
原创 Makefile基本语法
然后,B = $(foreach f , $(A), $(f).o )使用了foreach函数,对于每个元素f在列表$(A)中,执行了操作$(f).o,生成了对应的对象文件(如a.o、b.o、c.o)。因此,变量B最终会包含这些对象文件的列表。echo相当于打印,前面加个@的作用是打印结果时省略当前语句,“&()”相当于取哪个变量的值,例如这里&(B),就是取变量B的值,即C的值,为“abc 123”F使用了filter函数,筛选了B中含有“.o”的内容,而B的输出均含有.o,故F的输出结果即为B的内容。
2025-02-11 23:55:13
1099
原创 嵌入式Linux2月11日学习笔记
在编译多个c文件时,可以单独把各个的c文件编译成机器文件(gcc -c -o main.o main.c),最后在统一链接为APP(gcc -o test main.o sub.o),这样在后续修改时,不用每一个文件都在编译一次,提高效率。编译就是把 C/C++代码(比如上述的“.i”文件)“翻译”成汇编代码,所用到的工具为 cc1(它的名字就是 cc1,x86 有自己的 cc1 命令,ARM 板也有自己的cc1 命令)。与静态库不同,动态库不会被直接嵌入到可执行文件中,而是以共享的方式加载。
2025-02-11 00:50:20
1311
1
原创 嵌入式Linux2月10日学习笔记
Shell 是一种用于用户与操作系统交互的一种高级命令行环境。它允许用户通过输入命令来执行操作,如文件管理、目录遍历、文本处理、网络操作等。Shell 的意思是“外壳”,在 Linux 中它是一个程序,它负责接收用户的输入,根据用户的输入找到其他程序并运行。一输入一个命令为例,shell负责接受字符并显示,执行后解析并寻找相应的程序(通过环境变量path),执行程序。
2025-02-10 02:09:54
1219
原创 主机可以ping同Ubuntu,但Ubuntu不能ping同主机解决方法
主机可以ping同Ubuntu,但Ubuntu不能ping同主机解决方法
2025-02-06 22:59:03
1303
原创 2月5日Linux学习笔记
总结下这两天干的事情,首先把ubuntu给安装了,还在本地部署了deepseek的R1模型,以后用ai也会方便和快捷许多,学习课程是跟着韦东山的嵌入式Linux,这两天干的事情也基本是打打杂,明天开始正式学习,以后早上学Linux,下午看情况继续学Linux或者学freertos,还有很多原理没有搞清楚,晚上看情况学学数据结构以及算法。下面是今天的学习笔记,以后也要整理自己的文档,加油。bin和sbin可以理解为必要app,系统启动所必须需要的内容,而usr内的bin和sbin为非必须的内容。
2025-02-05 01:41:59
1155
原创 备战25春招
今天是2月2日大年初五,从今天开始正式记录自己的学习心得,备战嵌入式软件的春招。希望自己每天都可以坚持学习,坚持分享。同时这也是监督自己的一种方式,加油!
2025-02-02 02:39:35
699
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人