<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yjldsg的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yjldsg</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yjldsg]]></copyright><item><title><![CDATA[OneOS操作系统入门-驱动-03：I2C总线及驱动]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/144851664</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/144851664</guid><author>yjldsg</author><pubDate>Tue, 31 Dec 2024 16:19:40 +0800</pubDate><description><![CDATA[总线是一种由PHILIPS公司开发的两线式串行总线，用于连接微控制器以及其外围设备。它是由数据线 SDA和时钟线SCL构成的串行总线，可发送和接收数据，在 CPU与被控IC之间、IC与IC之间进行双向传送。IIC总线有如下特点：（1）总线由数据线SDA和时钟线SCL构成的串行总线，数据线用来传输数据，时钟线用来同步数据收发。（2）总线上每一个器件都有一个唯一的地址识别，所以我们只需要知道器件的地址，根据时序就可以实现微控制器与器件之间的通信。（3）数据线。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-驱动-02：ADC和DAC驱动]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/144850976</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/144850976</guid><author>yjldsg</author><pubDate>Tue, 31 Dec 2024 15:26:42 +0800</pubDate><description><![CDATA[能源系统中，ADC用于监测和控制能源消耗。（11）DAC驱动是嵌入式系统设计中的关键组件，它不仅提供了硬件控制的灵活性和可扩展性，还确保了系统的稳定性和可靠性。（1）硬件抽象：DAC驱动为硬件提供抽象层，使得软件能够以标准化的方式与硬件通信，而不需要关心硬件的具体实现细节。（6）信号调理：在某些情况下，DAC驱动可能还包括信号调理功能，如数字滤波、增益控制等，以优化输出信号的质量。（4）接口通信：DAC驱动管理与DAC硬件的通信接口，如SPI、I2C、并行接口等，以发送数字数据到DAC。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-驱动-01：SPI和I2C驱动]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/144721355</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/144721355</guid><author>yjldsg</author><pubDate>Wed, 25 Dec 2024 15:53:56 +0800</pubDate><description><![CDATA[SPI（Serial Peripheral Interface）是一种常用的同步串行通信协议，主要用于微控制器和其他集成电路之间的短距离通信。SPI设备和SPI驱动是实现SPI通信的关键组件。I2C（Inter-Integrated Circuit）是一种串行通信协议，用于连接微控制器和其他集成电路。I2C协议允许多个设备共享同一总线，通过两条线进行通信：数据线（SDA）和时钟线（SCL）。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-11：内存管理]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/142971517</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/142971517</guid><author>yjldsg</author><pubDate>Wed, 16 Oct 2024 11:15:03 +0800</pubDate><description><![CDATA[OneOS 内存堆管理主要作用于：系统堆功能应用程序单独创建自己的内存堆、每个内存堆支持管理多个内存区域并且支持多种内存算法。OneOS 内存堆管理也叫可变长分配方式，这种可变长的内存块分配在很多系统中被用到，系统本身就是一个很大的内存堆，随着系统的运行，不断的申请释放内存和用户申请与释放内存造成了系统的内存块的大小和数量随之改变。First-fit是一种主要用于操作系统中管理内存空间的内存分配算法。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-10：任务同步与通信：消息队列/邮箱]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/142855814</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/142855814</guid><author>yjldsg</author><pubDate>Fri, 11 Oct 2024 16:35:08 +0800</pubDate><description><![CDATA[消息队列是为了任务与任务、任务与中断之间的通信而准备的，可以在任务与任务、任务与中断之间传递消息，消息队列中可以存储有限的、大小固定的数据项目。任务与任务、任务与中断之间要交流的数据保存在队列中，叫做队列项目。队列所能保存的最大数据项目数量叫做队列的长度，创建队列的时候会指定数据项目的大小和队列的长度。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-09：任务同步与通信：事件]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/142387208</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/142387208</guid><author>yjldsg</author><pubDate>Fri, 20 Sep 2024 16:23:49 +0800</pubDate><description><![CDATA[同步操作可以使用信号量来完成，但是使用信号量来同步的话任务只能与单个的事件或任务进行同步。对于任务要与多个事件或任务进行同步的情况，信号量无法完成同步。OneOS为此提供了事件标志组来解决上述问题。事件也是任务间同步的一种机制，如果任务需要等待某种特定的条件才能继续往下执行，就可以用事件实现。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-08：任务同步与通信：互斥锁]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/142258253</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/142258253</guid><author>yjldsg</author><pubDate>Sat, 14 Sep 2024 15:48:37 +0800</pubDate><description><![CDATA[在学习 OneOS 的信号量中，会发现使用 OneOS 信号量有可能会出现优先级翻转现场，互斥锁是一种任务间互斥的机制，一个任务占有了某个资源，就不允许别的任务去访问，直到占有资源的任务释放锁。即一个资源同时只允许一个访问者对其访问，具有唯一性和排他性，但互斥不会限制访问者对资源的访问顺序，即访问是无序的。互斥锁其实就是一个拥有优先级继承的信号量，在同步的应用中任务与任务或中断与任务之间的同步)信号量最适合。互斥锁适合用于那些需要互斥访问的应用中。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-07：任务同步与通信：信号量]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/142144243</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/142144243</guid><author>yjldsg</author><pubDate>Wed, 11 Sep 2024 17:09:35 +0800</pubDate><description><![CDATA[信号量是一种用于控制对共享资源访问的同步机制，它在多线程编程和操作系统中非常常见。信号量的核心概念是计数器，这个计数器的值表示可用资源的数量或者执行特定任务的许可数量。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-06：链表]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/141961363</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/141961363</guid><author>yjldsg</author><pubDate>Fri, 06 Sep 2024 16:07:56 +0800</pubDate><description><![CDATA[链表是一种物理存储单元上非连续、非顺序的存储结构，数据元素的逻辑顺序是通过链表中的指针链接次序实现的。通过链表项与链表项的首尾相连组成链表项，链表项中可以包含一个指向下一个链表项的指针而不包含指向上一个链表的指针（单向链表），也可以即包含一个指向下一个链表的指针又包含一个指向上一个链表的指针（双向链表）。在 OneOS 系统中链表用列表（list）表示，链表项用节点（node）表示。OneOS 操作系统中的单向链表包含一个节点指针，这个节点指针指向下一个节点。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-05：Cortex-M中断管理]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/141721977</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/141721977</guid><author>yjldsg</author><pubDate>Fri, 30 Aug 2024 17:07:07 +0800</pubDate><description><![CDATA[中断是微控制器一个很常见的特性，中断由硬件产生，当中断产生以后CPU就会中断当前 的流程转而去处理中断服务。Cortex-M内核的MCU提供了一个用于中断管理的嵌套向量中断 控制器(NVIC)。OneOS中配置的Cotex-M的NVIC最多支持256个中断请求（16个内核中断+240个外部中断）、1个不可屏蔽中断(NMI)1个Systick(滴答定时器定时器中断和多个系统异常。特性/概念描述异步性中断是异步发生的，可以在任何时刻打断CPU的正常执行流程。通知机制。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-04：时间片轮转调度介绍与实验详解]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/141469500</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/141469500</guid><author>yjldsg</author><pubDate>Fri, 23 Aug 2024 17:01:53 +0800</pubDate><description><![CDATA[时间片是操作系统分配给每个正在运行的进程（或线程）的一个固定时间段，在这个时间段内，进程可以独占CPU并执行其任务。时间片的主要目的是确保所有处于就绪状态的进程都能获得公平的CPU时间，避免某些进程长时间占用CPU。在时间片轮转调度中，系统会维护一个就绪队列，所有就绪进程按照到达的顺序排队等待执行。操作系统按照队列顺序依次分配时间片，每个进程在获得CPU后开始执行，直到其时间片用完。时间片的长度通常由操作系统的调度器决定，这个长度可以根据系统的性能要求和进程的优先级进行调整。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-03：OneOS任务基础知识介绍与实验详解]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/141466176</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/141466176</guid><author>yjldsg</author><pubDate>Fri, 23 Aug 2024 15:36:56 +0800</pubDate><description><![CDATA[51、AVR、STM32单片机等裸机(未使用系统)的时候一般都是在main 函数里面用while(1)做一个大循环来完成所有的处理，即应用程序是一个无限的循环，循环中调用相应的函数完成所需的处理。有时候我们也需要中断中完成一些处理。相对于多任务系统而言，这个就是单任务系统，也称作前后台系统，中断服务函数作为前台程序，大循环while(1)作为后台程序，如下图所示：前后台系统的实时性差，系统各个任务应用程序都是排队轮流执行，不管程序是否紧急，相当于所有任务的优先级都一样。但前后台系统简单，资源消耗也少。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-02：OneOS实验环境配置和点亮开发板]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/141432793</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/141432793</guid><author>yjldsg</author><pubDate>Thu, 22 Aug 2024 17:17:24 +0800</pubDate><description><![CDATA[OneOS Lite是中国移动针对物联网领域推出的轻量级操作系统，具有可裁剪、跨平台、低功耗、高安全等特点，支持ARM Cortex-M、MIPS、RISC-V等主流芯片架构，兼容POSIX、CMSIS等标准接口，支持MicroPython语言开发，提供图形化开发工具，能够有效提升开发效率并降低开发成本，帮助用户开发稳定可靠、安全易用的物联网应用。scons --ide = xxx：项目编译构造命令，如：scons --ide = MDK5。（2）系统配置：系统剪裁，组件使能/失能，外设使能/失能等。]]></description><category></category></item><item><title><![CDATA[OneOS操作系统入门-01：OneOS简介]]></title><link>https://blog.youkuaiyun.com/yjldsg/article/details/141252730</link><guid>https://blog.youkuaiyun.com/yjldsg/article/details/141252730</guid><author>yjldsg</author><pubDate>Fri, 16 Aug 2024 17:58:36 +0800</pubDate><description><![CDATA[本节内容主要介绍了裸机系统和RTOS系统，OneOS操作系统的概念、架构、特点及相对于其他操作系统的优势]]></description><category></category></item></channel></rss>