随笔分类 - 嵌入式
大分类
摘要:前言 本次笔记主要记录博主移植lvgl到linux上的过程,方便调试。 两种编译方式: 移植官方推荐的lvgl,基于linux SDL2,makefile编译方式。 另外还会分别移植lvgl v8.0 和 lvgl v8.3两个版本。都是基于SDL2多媒体框架和CMAKE编译。 lvgl v8.3版
阅读全文
摘要:前言 最近周末在搭建个人网站,花了两天了解了下,目前基本上已经完成了个人博客网站的搭建,但是网站备案还没处理,只能IP访问,就不贴出了。 现把途中记录的笔记分享下。 内网穿透不仅仅用于个人网站搭建把数据拿捏在本地,主要是为了方便后期可能会玩or开发一些物联网设备而提前准备的环境。 原文:李柱明博客园
阅读全文
摘要:前言 TCP的实现比UDP复杂很多。 所以把原理篇和源码篇分开写。 原文:https://www.cnblogs.com/lizhuming/p/16883586.html 李柱明博客园:https://www.cnblogs.com/lizhuming/ 12.1 TCP协议简介 传输控制协议(T
阅读全文
摘要:前言 主要分析源码实现。 源码部分,本章节也只分析协议实现部分和最原始的南北接口。 北向协议栈接口和套接字接口的封装后面有独立章节分析。 即是UDP RAW接口。 友链: 李柱明博客园https://www.cnblogs.com/lizhuming/p/16880148.html 11.1 传输层
阅读全文
摘要:前言 参考:RFC 792 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/16861945.html 10.1 ICMP简介 IP 协议是一种不可靠、无连接的协议,只在各个主机间交付数据,但是对于数据的到达与否,IP 协议并不关心。 但是有些源主机希望能得
阅读全文
摘要:前言 默认主讲ipv4。 概念性的内容简单过一遍即可,主要还是在源码实现方面。 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/16859723.html 9.1 IP协议简述 IP 协议(Internet Protocol),又称之为网际协议,IP 协议处
阅读全文
摘要:前言 主要分析网络接口概念、网卡数据结构、网络接口、环回接口实现等等。 参考: 本文:https://www.cnblogs.com/lizhuming/p/16642648.html 李柱明笔记汇总:https://www.cnblogs.com/lizhuming/p/16557045.html
阅读全文
摘要:前言 本笔记主要记录lwip框架部分,目的是为了对lwip的源码实现有初步了解,方便后面细节分析。 参考: 本文:https://www.cnblogs.com/lizhuming/p/16634848.html 李柱明笔记汇总:https://www.cnblogs.com/lizhuming/p
阅读全文
摘要:前言 了解了lwip的内存管理后,接下来就是网络数据包的了解。 注意与内部lwip消息的区别:网络数据包用于网络数据的流转,而内部lwip消息用于内部协作。 本篇开始,结合源码独立分析lwip,逐步拆解lwip开源库。 参考: 本文:https://www.cnblogs.com/lizhuming
阅读全文
摘要:[toc] ## 前言 前期的笔记主要是学习为主。 近期的学习笔记主要为自己独立分析开源库源码为主。 技术日新月异,基础维稳。 很喜欢魅族的一句话:**追求源于热爱**。 ## LVGL [【lvgl】01-lvgl移植之在linux上跑](https://www.cnblogs.com/lizhu
阅读全文
摘要:前言 默认以32bit事件类型和任务专用API讲解。 事件独立于消息队列、信号量和互斥量这些章节是因为内部实现机制不同。 参考:李柱明博客:https://www.cnblogs.com/lizhuming/p/16353453.html 12.1 实现事件机制的预备知识 12.1.1 守护任务 和
阅读全文
摘要:前言 本节描述任务相关的控制。 主要讲解使用,源码分析后面对应章节会有。 学习本节前,建议同学们往前回忆下任务控制块的内容。 参考: freertos官网 李柱明博客 任务控制主要是对任务控制块的处理。 比如任务延时、重置任务优先级、任务挂起与恢复。 对于延时相关的代码细节,可以参考前面的【free
阅读全文
摘要:前言 本章主要讲解内部存储空间(RAM)的管理。 详细分析heap5方案。 参考: 李柱明博客 https://freertos.blog.csdn.net/article/details/51606068 8.1 C标准库的内存管理 C标准库的内存管理用到的API是malloc()和free(),
阅读全文
摘要:前言 本章节的时钟系统节拍主要分析FreeRTOS内核相关及北向接口层,南向接口层不分析。 本章节的系统延时主要分析任务系统延时实现。 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/16085130.html 笔记手码。 相关代码仓库:李柱明 gitee
阅读全文
摘要:前言 任务调度实现的两个核心: 调度器实现;(上一章节已描述调度基础) 任务切换实现。 接口层实现。 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/16080202.html 6.1 任务切换基础 任务切换就是在就绪列表中寻找优先级最高的就绪任务,然后去执
阅读全文
摘要:前言 本节主要讲解启动调度器。 这些都是与硬件相关,所以会分两条线走:posix和cortex m3。 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/16076476.html 5.1 调度器的基本概念 5.1.1 调度器 调度器就是使用相关的调度算法来决
阅读全文
摘要:前言 后面都是已动态内存任务为例来分析。 注意: 由于当前学习是在linux上跑的freertos,对于freertos底层相关接口,从demo工程来看,都是posix标准相关。 鉴于freertos多用于ARM架构,本教程涉及到硬件接口,作者会分两条路线讲解: posix标准接口。 cortex
阅读全文
摘要:前言 资源: https://www.freertos.org/taskandcr.html 李柱明博客 3.1 任务概念 进程:进程是程序执行的过程,是程序在执行过程中分配和管理资源的基本单位。拥有独立的虚拟地址空间。 线程:线程是CPU调度和分派的基本单位。与其它同一进程的线程共享当前进程资源。
阅读全文
摘要:前言 如果对硬件任务内核切换不感兴趣的同学可以跳过。 由于任务源码分析开始涉及到接口层,所以在学习源码前,先了解下posix接口层的设计。 本系列接口层会讲解两个: posix标准接口。因为本教程demo在linux上跑freertos时实际使用的就是这个接口。 cortex m3/m4架构接口。因
阅读全文
摘要:前言 主要是freertos。 为啥突然要写这玩意的笔记? 因为工作需要,所以在空闲时间抽时间写下,这个系列可能随时断更,因为作者在学和在做的主要还是网络协议栈。 特别提示: 有条件的同学们建议使用keil来在线仿真freertos,方便学习,可以直观地看到CPU寄存器组信息、实时栈信息、各个任务详
阅读全文