<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[absinjun的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/absinjun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; absinjun]]></copyright><item><title><![CDATA[虚拟机与主机串口通信（主机与主机）]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/122203976</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/122203976</guid><author>absinjun</author><pubDate>Tue, 28 Dec 2021 22:07:44 +0800</pubDate><description><![CDATA[简介：由于某些主机无串口接口，或者需要两台主机交互通信来实现串口收发端的调试、modubus通讯的调试，为方便起见，查阅资料后，特有此文。
一、环境
硬件：x86
系统：本机：win7 64、Vmware: ubuntu16.04
软件：Virtual Serial Port Driver Pro 9.0、串口调试软件
二、资源获取
(1) Virtual Serial Port Driver Pro 9.0
https://www.sdbeta.com/wg/2018/0718/224342.html
(]]></description><category></category></item><item><title><![CDATA[COE、SOE、EOE、FOE是什么？]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/122203964</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/122203964</guid><author>absinjun</author><pubDate>Tue, 28 Dec 2021 22:04:29 +0800</pubDate><description><![CDATA[简单来说，COE、SOE、EOE、FOE都是一种基于邮箱协议，分别基于EtherCAT来兼容。
COE
全称：CANopen over EtherCAT。该协议是一个具有开放性的标准应用层协议。其中CANopen协议是基于CAN协议的链路层上实现的。EtherCAT协议在应用层支持CANopen协议，因此支持CANopen协议的从站可以被运用在EtherCAT协议上。
SOE
全称：Servo Drive over EtherCAT。SERCOS是世界首个应用于伺服控制的协议。EtherCAT协议在应用层接]]></description><category></category></item><item><title><![CDATA[LinuxCNC基础知识]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/122203943</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/122203943</guid><author>absinjun</author><pubDate>Tue, 28 Dec 2021 22:03:38 +0800</pubDate><description><![CDATA[一. CNC的概念
数控技术产生于 20 世纪中期， 是一种用数字、 文字和符号组成的指令来实现控制一台或多台机械设备动作的技术。 数控技术的发展首先产生了以硬件数控系统（Numerical Control， NC） 为代表的产品， 硬件数控系统利用由逻辑元件和记忆元件组成的逻辑电路实现运算和控制功能，但具有灵活性差和柔性不好的缺点。 随着计算机技术的发展，利用一台计算机代替先前的逻辑电路实现数控装置所有功能的计算机数控系统（Computerized Numerical Control， CNC）逐渐成为市]]></description><category></category></item><item><title><![CDATA[EtherCAT有哪些主流开源代码？它们的优点是什么？]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/122203922</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/122203922</guid><author>absinjun</author><pubDate>Tue, 28 Dec 2021 22:02:22 +0800</pubDate><description><![CDATA[EtherCAT两大主流开源代码为SOEM和Igh EtherCAT Master。
SOEM
SOEM 全称 Simple Open EtherCAT Master
优点：

非常易于使用
静态分配内存，占用空间少
易于移植驱动程序和应用程序层
可在Window、Linux平台运行

IGH EtherCAT Master
优点：

成熟的EtherCAT主站
稳定性好
性能好
对EtherCAT的功能支持更加全面


对比表




开源主站
SOEM
IGH EtherCAT Master




版]]></description><category></category></item><item><title><![CDATA[EtherCAT协议有哪些竞争对手？]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/122203235</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/122203235</guid><author>absinjun</author><pubDate>Tue, 28 Dec 2021 21:27:47 +0800</pubDate><description><![CDATA[以下列出了常用的工业以太网协议
(1) EtherNet/IP
EtherNet/IP建立在标准的UDP/IP和TCP/IP协议之上，是在1990年后期由洛克威尔自动化公司开发．是洛克威尔工业以太网络方案的一部分。后来洛克威尔就和EtherNet/IP交给ODVA管理，ODVA管理EtherNet/IP通讯协定，并确认不同厂商开发的EtherNet/IP设备都符合EtherNet/IP通讯协定，确保多供应商的EtherNet/IP网络仍有互操作性。
利用固定的以太网软硬件，为访问、配置及控制设备定义了一个应]]></description><category></category></item><item><title><![CDATA[EtherCAT有什么优点？为何如此受欢迎？]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/122203214</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/122203214</guid><author>absinjun</author><pubDate>Tue, 28 Dec 2021 21:25:50 +0800</pubDate><description><![CDATA[(1) 高速以太网
EtherCAT非常快。它使用双绞线或光缆可以在30us内处理1000个分布式I/O信号，或在100us内处理100个轴。
(2) 精确同步（最大的优点）
具有纳秒级别的同步性，协议栈处理延迟仅需要几纳秒。
(3) 灵活的拓扑结构
EtherCAT网络最多可支持65,535个设备，而对拓扑结构没有限制。几乎无限数量的节点可以组成线型、树型、星型拓扑及任何拓扑的组合。
(4) 低成本易实现
EtherCAT&nbsp;以相当甚至低于传统现场总线系统的价格水平提供工业以太网的特性。对于主站设]]></description><category></category></item><item><title><![CDATA[EtherCAT是什么？]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/122203182</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/122203182</guid><author>absinjun</author><pubDate>Tue, 28 Dec 2021 21:24:51 +0800</pubDate><description><![CDATA[EtherCAT（用于控制自动化技术的以太网）是Beckhoff（倍福）在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网，但是与Internet通信或网络通信不同之处在于，它专门针对工业自动化控制进行了优化。这些标准由EtherCAT技术小组（简称ETG）定义和维护。
使用OSI网络模型，以太网和EtherCAT依赖于相同的物理和数据链路层。除此之外，由于针对不同任务进行了优化，因此这两个网络在设计上有所不同。例如，以太网被设计为通过许多不同的节点发送大量数据。它能够与数十亿个单独的地址之]]></description><category></category></item><item><title><![CDATA[ARM(AM5728)板移植VSFTPD]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/91045309</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/91045309</guid><author>absinjun</author><pubDate>Thu, 06 Jun 2019 15:54:30 +0800</pubDate><description><![CDATA[简介：在ARM板上搭建VSFTPD一直出现各种奇怪的问题，搜寻许多资料未果，现已解决，特此分享。
说明：以下的分享均是VSFTPD的初级用法以及我所遇到的问题，x86使用源码安装也可使用此方式进行安装。
一、环境
硬件： ARM板（AM5728）
软件：vsftpd3.0.2
二、资源获取
⑴ 官网获取：https://security.appspot.com/downloads/vsftpd-...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）18--字符串转换整数 (atoi)]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/85316645</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/85316645</guid><author>absinjun</author><pubDate>Fri, 28 Dec 2018 08:47:39 +0800</pubDate><description><![CDATA[题目：字符串转换整数 (atoi)

请你来实现一个 atoi 函数，使其能将字符串转换成整数。


首先，该函数会根据需要丢弃无用的开头空格字符，直到寻找到第一个非空格的字符为止。


当我们寻找到的第一个非空字符为正或者负号时，则将该符号与之后面尽可能多的连续数字组合起来，作为该整数的正负号；假如第一个非空字符是数字，则直接将其与之后连续的数字字符组合起来，形成整数。


该字符串除了有效的整...]]></description><category></category></item><item><title><![CDATA[Linux(ubuntu)更换内核方法]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/85111292</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/85111292</guid><author>absinjun</author><pubDate>Thu, 20 Dec 2018 08:46:15 +0800</pubDate><description><![CDATA[简介：Linux搭建实时系统预备篇。
一、环境
硬件：x86
系统：Ubuntu14.04.5
初始内核：4.4.0-31
替换内核：3.14.44
注意：系统版本可通过cat /etc/issue查看，内核版本可通过uname -r查看。
二、资源获取
(1) ubuntu系统下载
http://mirrors.163.com/ubuntu-releases/
(2) 内核下载
https://...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）17--验证回文字符串]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/83831348</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/83831348</guid><author>absinjun</author><pubDate>Wed, 07 Nov 2018 20:34:58 +0800</pubDate><description><![CDATA[题目：验证回文字符串

给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。

说明：本题中，我们将空字符串定义为有效的回文串。
示例 1:

输入: “A man, a plan, a canal: Panama”
输出: true

示例 2:

输入: “race a car”
输出: false

代码实现：
bool isPalindrome(char* s)...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）16--有效的字母异位词]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/83795418</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/83795418</guid><author>absinjun</author><pubDate>Tue, 06 Nov 2018 22:16:46 +0800</pubDate><description><![CDATA[题目：有效的字母异位词

给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的一个字母异位词。

示例 1:

输入: s = “anagram”, t = “nagaram”
输出: true

示例 2:

输入: s = “rat”, t = “car”
输出: false

说明:
你可以假设字符串只包含小写字母。
代码实现：
bool isAnagram(char* s,...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）15--字符串中的第一个唯一字符]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/83795370</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/83795370</guid><author>absinjun</author><pubDate>Tue, 06 Nov 2018 22:13:22 +0800</pubDate><description><![CDATA[题目：字符串中的第一个唯一字符

给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。

案例:

s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.

注意事项：您可以假定该字符串只包含小写字母。
代码实现：
int firstUniqChar(char* s) {
    int len;
    
    /* 获取...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）14--颠倒整数]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/82963877</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/82963877</guid><author>absinjun</author><pubDate>Mon, 08 Oct 2018 09:49:06 +0800</pubDate><description><![CDATA[题目：颠倒整数

给定一个 32 位有符号整数，将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:
假设我们的环境只能存储 32 位有符号整数，其数值范围是 [−231,  231 − 1]。根据这个假设，如果反转后的整数溢出，则返回 0。
代码实现：
int reve...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）13--反转字符串]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/82963795</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/82963795</guid><author>absinjun</author><pubDate>Mon, 08 Oct 2018 09:43:38 +0800</pubDate><description><![CDATA[题目：反转字符串

编写一个函数，其作用是将输入的字符串反转过来。

示例 1:

输入: “hello”
输出: “olleh”

示例 2:

输入: “A man, a plan, a canal: Panama”
输出: “amanaP :lanac a ,nalp a ,nam A”

代码实现：
char* reverseString(char* s) {
    char *str;...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）12--旋转图像]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/82924751</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/82924751</guid><author>absinjun</author><pubDate>Tue, 02 Oct 2018 11:03:10 +0800</pubDate><description><![CDATA[题目：旋转图像

给定一个 n × n 的二维矩阵表示一个图像。
将图像顺时针旋转 90 度。


说明：
你必须在原地旋转图像，这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

示例 1:
给定 matrix = 
[
  [1,2,3],
  [4,5,6],
  [7,8,9]
],

原地旋转输入矩阵，使其变为:
[
  [7,4,1],
  [8,5,2],
  ...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）11--有效的数独]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/82924676</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/82924676</guid><author>absinjun</author><pubDate>Tue, 02 Oct 2018 10:54:39 +0800</pubDate><description><![CDATA[题目：有效的数独

判断一个 9x9 的数独是否有效。只需要根据以下规则，验证已经填入的数字是否有效即可。


1 数字 1-9 在每一行只能出现一次。
2 数字 1-9 在每一列只能出现一次。
3 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

上图是一个部分填充的有效的数独。
数独部分空格内已填入了数字，空白格用 ‘.’ 表示。

示例 1:
输入:
[
  [&quot;5&quot;,&quot;3...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）10--两数之和]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/82924629</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/82924629</guid><author>absinjun</author><pubDate>Tue, 02 Oct 2018 10:46:25 +0800</pubDate><description><![CDATA[题目：两数之和

给定一个整数数组和一个目标值，找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案，且同样的元素不能被重复利用。

示例:

给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

代码实现：
/**
 * Note: The returned array m...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）9--移动零]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/82915850</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/82915850</guid><author>absinjun</author><pubDate>Mon, 01 Oct 2018 12:20:34 +0800</pubDate><description><![CDATA[题目：移动零

给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
1 必须在原数组上操作，不能拷贝额外的数组。
2 尽量减少操作次数。

代码实现：
void moveZeroes(int* nums, int numsSize) {
    int i, j = ...]]></description><category></category></item><item><title><![CDATA[Leetcode算法题（C语言）8--加一]]></title><link>https://blog.youkuaiyun.com/absinjun/article/details/82915833</link><guid>https://blog.youkuaiyun.com/absinjun/article/details/82915833</guid><author>absinjun</author><pubDate>Mon, 01 Oct 2018 12:15:25 +0800</pubDate><description><![CDATA[题目：加一

给定一个由整数组成的非空数组所表示的非负整数，在该数的基础上加一。
最高位数字存放在数组的首位， 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外，这个整数不会以零开头。

示例 1:

输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:

输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 43...]]></description><category></category></item></channel></rss>