<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lfarsight的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lfarsight</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lfarsight]]></copyright><item><title><![CDATA[Rapid IO   请求响应顺序]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/103082477</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/103082477</guid><author>Lfarsight</author><pubDate>Fri, 15 Nov 2019 11:42:28 +0800</pubDate><description><![CDATA[Rapid IO   请求响应顺序
Master operation issued  ——产生请求包——Fabric 产生应答符并向Target产生包转发请求——Target 产生应答符   完成operation并产生对Fabric的响应 包 事件——Fabric 产生应答符并产生 包 转发请求——Master 产生应答符响应Fabric 并完成operation。

...]]></description><category></category></item><item><title><![CDATA[线路/信道编码技术——8B/10B编码]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/103081784</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/103081784</guid><author>Lfarsight</author><pubDate>Fri, 15 Nov 2019 11:11:20 +0800</pubDate><description><![CDATA[注：8B/10B编码的最终结果就是实现disparity=0，-2，+2三种情况，并不是所谓简单的补0补1
两个不错的博客链接帮助理解：
https://blog.youkuaiyun.com/hit_wzj/article/details/50403243
https://www.jianshu.com/p/f58873cafe0d

...]]></description><category></category></item><item><title><![CDATA[以太网常用接口]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/103062679</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/103062679</guid><author>Lfarsight</author><pubDate>Thu, 14 Nov 2019 11:37:01 +0800</pubDate><description><![CDATA[1.PHY层的主要作用就是将MAC层数据（MII接口数据）通过串并转换器，重新排序，并根据响应的调制方式，将信号重新编码，再通过MDI接口（介质相关接口）将数据通过对应线路传送出去。具体过程见下图：

PCS（物理编码）子层：位于协调自曾（通过GMII）和物理介质接入层子层之间。PCS完成将经过完善定义的以太网MAC功能映射到现存的编码和物理层信号系统的功能上去。PCS子层和上层RS/MAC的接口...]]></description><category></category></item><item><title><![CDATA[Insertion Loss & Return Loss]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/102467688</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/102467688</guid><author>Lfarsight</author><pubDate>Wed, 09 Oct 2019 18:51:19 +0800</pubDate><description><![CDATA[本文链接：https://blog.youkuaiyun.com/XianruDu/article/details/17176511
Insertion Loss 和 Return Loss 用来描述高速信号经过一个连接器（connector, component, device, or transmission line…）时的behavior，具体地说就是signal power的loss，都与工作频率有...]]></description><category></category></item><item><title><![CDATA[静态变量，局部变量，strlen，sizeof]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/94020191</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/94020191</guid><author>Lfarsight</author><pubDate>Fri, 28 Jun 2019 17:05:47 +0800</pubDate><description><![CDATA[float小数点后位数
局部变量存在栈中
静态变量存在静态存储区
静态局部变量：存储在静态存储区，占据着永久性的存储单元。
直到程序运行结束才会释放存储单元。由于并不释放存储单元，
所以下次再进入该函数时，可以继续使用该存储单元的值。
栈是由编译器自动分配释放 ，存放函数的参数值，局部变量的值等。
其操作方式类似于数据结构中的栈。堆是一般由程序员分配释放， 若程序员不释放，
没有被操作系统回收的话...]]></description><category></category></item><item><title><![CDATA[嵌入式编程]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/88399226</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/88399226</guid><author>Lfarsight</author><pubDate>Mon, 11 Mar 2019 17:32:20 +0800</pubDate><description><![CDATA[1、
interrupt double compute_area(double radis)
{
double area=PIradiusradius;
printf(&amp;quot;\nArea=%f&amp;quot;,area);
return area;
}
(1）ISR不能返回一个值。
（2）ISR不能传递参数。
(3）在许多处理器中浮点是不可重入的。
(4）printf()经常有重入和性能上的问题，所以一般不使用pr...]]></description><category></category></item><item><title><![CDATA[指针数组、数组指针]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/88397305</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/88397305</guid><author>Lfarsight</author><pubDate>Mon, 11 Mar 2019 16:40:26 +0800</pubDate><description><![CDATA[int a[10];   一个有10个整型数的数组
int *a[10];    一个有10个指针的数组，该指针是指向一个整型数的。
int （*a）[10]; 一个指向10个整型数数组的指针。
int  (*a)(int)    ;       一个指向函数的指针，该函数有一个整型参数并返回一个整型数
int（*a[10]）(int);     一个有10个指针的数组，该指针指向一个函数，该函数...]]></description><category></category></item><item><title><![CDATA[动态内存传递（2）]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/88395970</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/88395970</guid><author>Lfarsight</author><pubDate>Mon, 11 Mar 2019 16:03:03 +0800</pubDate><description><![CDATA[..............................
void GetMemory(char *p,int num)
    {
    	p=(char *)malloc(sizeof(char) *num）;
    };
    int main()
    {	
    	char *str=NULL;
    	GetMemory(str,100);
    	strcpy...]]></description><category></category></item><item><title><![CDATA[指针、动态内存传递]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/88391076</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/88391076</guid><author>Lfarsight</author><pubDate>Mon, 11 Mar 2019 11:48:24 +0800</pubDate><description><![CDATA[1.指针：允许直接获取和操纵数据地址，实现动态存储分配。
int *pi;
*pi=5;

上述代码是错误的，整数指针pi并没有指向实际的地址，赋的值不知道该放到哪里去。
2. 下面哪个能够成功实现两个数的交换。
1）void swap1(int a, int b)
	{
		int temp;
		temp=a;
		a=b;
		b=temp;
	}
	
2）void swap2(int *a...]]></description><category></category></item><item><title><![CDATA[预处理、const、sizeof]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/88386098</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/88386098</guid><author>Lfarsight</author><pubDate>Mon, 11 Mar 2019 10:42:40 +0800</pubDate><description><![CDATA[1.const与#define的区别：
1)都可以定义常量，但前者比后者有优点：const常量有数据类型，而宏常量没有数据类型，编译器可以对前者进行类型安全检查，而#define只是替换，并且在字符替换过程中可能会产生意想不到的错误（边际效应）。
2)有些集成化的调试工具可以对const常量进行调试，但不能对宏常量进行调试。
3）const完全可以取代宏常量。
2.char * s1=“01234...]]></description><category></category></item><item><title><![CDATA[c语言--提高篇(习惯、风格)]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/88383392</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/88383392</guid><author>Lfarsight</author><pubDate>Sun, 10 Mar 2019 20:35:45 +0800</pubDate><description><![CDATA[1、 写法1：if('A'==a) 	{	a++; }
写法2;	if(a=='A')		{	a++;}
写法1比较好，若将“==”误写成“=”，编译器不允许对常数赋值就可检查到错误。
2、写法1：for(i=0;i&amp;lt;9;i++){ 	X=i+Y+J*7; }
写法2：
S=Y+J*7;
for(i=0;i&amp;lt;9;i++){
	X=i+S;
}

写法2比较好，将部分加法放到了循环体外，...]]></description><category></category></item><item><title><![CDATA[uc-osII系统移植]]></title><link>https://blog.youkuaiyun.com/Lfarsight/article/details/87990868</link><guid>https://blog.youkuaiyun.com/Lfarsight/article/details/87990868</guid><author>Lfarsight</author><pubDate>Wed, 27 Feb 2019 21:11:19 +0800</pubDate><description><![CDATA[任务调度
ucosii 为保证实时性，给每个任务分配一个不同的优先级。当发生任务切换时，
总是切换到就绪的最高优先级任务。有 2 种情况会发生任务切换。
1.任务等待资源就绪或自我延时；
2.退出中断；
情况 1 可以理解为任务主动放弃 cpu 的使用权。
情况 2 可以理解为中断后，某种资源可能就绪了，需要任务切换。
需要注意的是 SysTick 中断，这个中断是 os 的“心跳”，必须得有。这...]]></description><category></category></item></channel></rss>