<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SUN1_SHINE2的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SUN1_SHINE2</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SUN1_SHINE2]]></copyright><item><title><![CDATA[BUG的烦恼]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561961</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561961</guid><author>SUN1_SHINE2</author><pubDate>Wed, 03 Jul 2019 14:43:36 +0800</pubDate><description><![CDATA[在我们这个行业的学习和工作中，bug是个逃不掉的话题。

最近两天，在调试一个程序，程序本来是完整的，只是我需要把它移植到另一个平台上。

框架是没有动的，连平台的架构都很像，属于一个系列的芯片，但问题来了：

总也运行不到想要的结果，和预期总是相差。

bug分好多种，必现的，和不稳定的，必现的还好点，根据现象，最多把逻辑再捋一遍，总能发现问题所在。

我遇到的属于后者，每次的现象不一致，这个很...]]></description><category></category></item><item><title><![CDATA[什么是看门狗？]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561844</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561844</guid><author>SUN1_SHINE2</author><pubDate>Wed, 03 Jul 2019 14:41:32 +0800</pubDate><description><![CDATA[一样采用简单明了的例子来解释。

条件：你家有条狗

事件：让他看门，报警

结果：1到点不给吃饭，会叫，2到点喂他吃东西，等待下次开饭

影响：叫了，造成噪声，影响大家休息

单片机的看门狗，故名思议，一个狗是要做为警醒某些异常事情的，当单片机采用看门狗功能时，是为了防止某些异常发生，例如某个功能运行异常，或者程序跑飞，卡死，在某处死循环，等等一系列amazing的情况，但是，只要你使用了看门狗...]]></description><category></category></item><item><title><![CDATA[什么是中断？]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561717</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561717</guid><author>SUN1_SHINE2</author><pubDate>Wed, 03 Jul 2019 14:40:35 +0800</pubDate><description><![CDATA[中断嘛，对于很多新手来讲，有点难以理解，举个容易的现实的例子吧。如果还不懂，骚年，考虑换行吧，或许这不是你的方向呢，诗和远方在前面岔路左拐。

比如小明和老丈人在喝酒，眼看老丈人就快招架不住了，正当此时，小明的

女友小丽来了，非要小明陪她上街买口红，于是小明暂停和老丈人的对饮，先把酒桌封了，

待买完口红后继续畅饮。傍晚时候，小明和小丽买好了口红，

小明面露疲惫来到酒桌前，继续和老丈人对酌。...]]></description><category></category></item><item><title><![CDATA[指针函数和函数指针的区别]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561236</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561236</guid><author>SUN1_SHINE2</author><pubDate>Wed, 03 Jul 2019 14:36:38 +0800</pubDate><description><![CDATA[1、指针函数：带指针的函数，其本质是一个函数，函数返回是某一类型的指针。

例如：int *f(x，y);其结构为 类型标识符 *函数名(参数)

首先你要从心里承认这是一个函数，只是返回的是个地址值。由于返回值是地址，所以一般类型都为int。







2、函数指针：是指向函数的指针变量，其本质是一个指针变量。指向函数的入口地址，可以通过它来调用函数。

例如 ：void (*pt...]]></description><category></category></item><item><title><![CDATA[循环缓存区的实现原理]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561115</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94561115</guid><author>SUN1_SHINE2</author><pubDate>Wed, 03 Jul 2019 14:34:53 +0800</pubDate><description><![CDATA[经常会设置一个数组之类的用来存储临时接受的数据，由于数据是临时的，具有不确定性，随机性，如果没及时读取，会造成数据丢失，对工程的运行不利。

我们如何建立一个循环的buf,当有新数据，存储在最新的位置，以便访问。

首先我们假设开辟一个10*32大小的数组a[10][32],假设我们的数据没次是32个byte,那我们可以存10组数据，当然越大越好，但一般小型处理器没有那么多可操作空间。

我们再定...]]></description><category></category></item><item><title><![CDATA[判断你的单片机内存增长方式-大小端]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94560886</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94560886</guid><author>SUN1_SHINE2</author><pubDate>Wed, 03 Jul 2019 14:33:34 +0800</pubDate><description><![CDATA[在main函数里这样几句

int i=0x12345678;

char*b = &amp;i;

if((b[0]==0x78）&amp;&amp;(b[1]==0x56)&amp;&amp;(b[2]=0x34)&amp;&amp;(b[3]==0x12))

printf（“small ”）；

else printf（“big”）；

//为真则是小端模式。
...]]></description><category></category></item><item><title><![CDATA[以卧槽的思维理解（RTOS）嵌入式实时系统(1)]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94560016</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/94560016</guid><author>SUN1_SHINE2</author><pubDate>Wed, 03 Jul 2019 14:25:42 +0800</pubDate><description><![CDATA[卧槽，该系列文章竟然只分析软实时系统，硬的咱也不了解啊。

实时系统总离不开这些出现频繁的词汇：资源，任务

资源：为任务所占用的，都可称之为资源包括变量，或者数组，结构体，外设资源等

任务：可以想成为一个可以运行的程序，当程序运行时，它认为整个cpu都在为自己服务，当然整个系统不只一个任务，可能多个任务组成。每个任务有自己的执行优先级，自己的堆栈空间（有的rtos公用堆栈空间）。所有的这些组成...]]></description><category></category></item><item><title><![CDATA[C状态机]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79753063</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79753063</guid><author>SUN1_SHINE2</author><pubDate>Fri, 30 Mar 2018 09:54:41 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[链表的实现]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79746172</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79746172</guid><author>SUN1_SHINE2</author><pubDate>Thu, 29 Mar 2018 17:27:21 +0800</pubDate><description><![CDATA[#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;typedef int ElemType;//定义结点类型typedef struct Node {    ElemType data;              //单链表中的数据域    struct Node *next;          //单链表的指针域}Node,*LinkedList;...]]></description><category></category></item><item><title><![CDATA[freertos和ucos的区别]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79746053</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79746053</guid><author>SUN1_SHINE2</author><pubDate>Thu, 29 Mar 2018 17:23:11 +0800</pubDate><description><![CDATA[　一、freeRTOS比uCOS II优胜的地方：　　1。内核ROM和耗费RAM都比uCOS 小，特别是RAM。 这在单片机里面是稀缺资源，uCOS至少要5K以上， 而freeOS用2~3K也可以跑的很好。　　2。freeRTOS 可以用协程（Co-routine），减少RAM消耗（共用STACK）。uCOS只能用任务（TASK，每个任务有一个独立的STACK）。　　3。freeRTOS 可以有优...]]></description><category></category></item><item><title><![CDATA[将一个字节数据进行高低位镜像对调的实现函数]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79109413</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/79109413</guid><author>SUN1_SHINE2</author><pubDate>Fri, 19 Jan 2018 17:53:06 +0800</pubDate><description><![CDATA[unsigned char swap (unsigned char pData){ unsigned char value=0,tmp=0; unsigned char ii,jj; for (ii=0x80,jj=0;ii!=0;ii=ii>>1,jj++) {  if (pData & ii) tmp=1;   else tmp =0;  value |= tmp  } return valu]]></description><category></category></item><item><title><![CDATA[关于ucosii的邮箱]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/52885316</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/52885316</guid><author>SUN1_SHINE2</author><pubDate>Fri, 21 Oct 2016 17:08:07 +0800</pubDate><description><![CDATA[ ucos II 任务间 通信之四：邮箱   学过信号量之后再来看邮箱，发现他们是非常相似的，甚至有时候邮箱可以当做信号量来使用，邮箱相对信号量而言，只是多传递了一个指针变量。和信号量很相似，ucos II提供了5个对邮箱进行操作的函数。它们是：1. 建立一个邮箱，OSMboxCreate()2. 等待一个邮箱中的消息，OSMboxPend()3. 发送一个消息到邮箱中，OSMboxPost()4...]]></description><category></category></item><item><title><![CDATA[DXP软件使用快捷键]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/52858064</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/52858064</guid><author>SUN1_SHINE2</author><pubDate>Wed, 19 Oct 2016 11:39:51 +0800</pubDate><description><![CDATA[DXP绘图快捷键整理]]></description><category></category></item><item><title><![CDATA[单片机多任务的时间片方式实现 .]]></title><link>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/52517936</link><guid>https://blog.youkuaiyun.com/SUN1_SHINE2/article/details/52517936</guid><author>SUN1_SHINE2</author><pubDate>Mon, 12 Sep 2016 22:03:18 +0800</pubDate><description><![CDATA[引言    由于单片机具有价格低、运行要求低、易于开发、稳定可靠等优点，广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。但是，单片机的位数少、频率低、内存小、I／O口少等缺点限制了其加载操作系统的可能。因此，单片机不能像ARM等较高性能的处理器一样，利用加载的操作系统实现管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等...]]></description><category></category></item></channel></rss>