自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

踏着时光去旅行的博客

虽然我们都是平凡的人,通过自己努力也可以做出不平凡的事情。一起共勉。

  • 博客(6)
  • 资源 (4)
  • 收藏
  • 关注

原创 二、Linux系统IO编程—系统调用标准IO

一、标准IO概念标准IO在系统调用的上一层多加了一个缓冲区,也因此引入了流的概念,在UNIX/Linux下表示为FILE*(并不限于UNIX/Linux,ANSI C都有FILE的概念),FILE实际上包含了为管理流所需要的所有信息:实际I/O的文件描述符,指向流缓存的指针(标准I/O缓存,由malloc分配,又称为用户态进程空间的缓存,区别于内核所设的缓存),缓存长度,当前在缓存中的字节数,出...

2019-06-25 08:27:48 440

原创 一、Linux系统IO编程——系统调用之文件IO与标准IO

一、系统调用1. 系统调用的概念Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。随Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,...

2019-06-21 15:12:28 1699 4

原创 十四、Linux下线程的死锁

一、死锁的概念一般情况下,如果同一个线程先后两次调用lock,在第一次调用时,由于锁已经被占,该线程会挂起等待别的线程释放锁,然而锁正是被自己占着的,该线程又被挂起,没有机会释放锁,因此,就永远处于挂起等待状态了,这叫做死锁(Deadlock)。另种典型的死锁情形是这样:线程A获得了锁1,线程B获得了锁2,这时线程A调用lock试图获得锁2,结果是需要挂起等待线程B释放锁2,而这时线程B也调用...

2019-06-18 15:40:29 267

原创 十三、Linux下线程的信号量

信号量相关功能一、信号量的概念1.线程的信号量是一种特殊的变量,它可以被增加或减少,但对其的关键访问被保证是原子操作。如果一个程序中有多个线程试图改变一个信号量的值,系统将保证所有的操作都将依次进行。但如果是普通变量,来自同一程序中不同线程的冲突操作所导致的结果将是不确定的。信号量一般常用于保护一段代码,使其每次只被一个执行线程运行。信号量是用来调协线程对共享资源的访问的。2.最简单的信号量...

2019-06-17 15:48:31 293

原创 十二、Linux下线程的同步—条件变量读者与写者问题

一、 案例写者读者案例,线程对共享资源写,写完成后读者继续读,当读取完成后,在通知写者继续写,依次循环。存在以下几种情况:1 个写者,1 个读者1 个写者,多个读者多个写者,多个读者1. 案例1——一个写者,一个读者。include<stdio.h>#include<stdlib.h>#include<string.h>#include...

2019-06-12 10:23:07 297 2

原创 十一、Linux下线程的同步—条件变量

一、条件变量的概念1. 条件变量基本概念条件变量是线程同步的一种手段。条件变量用来自动阻塞一个线程,直到条件(predicate)满足被触发为止。通常情况下条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个或者多个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"信号。条件变量是利用...

2019-06-05 17:07:33 177

基于STM32F103的W5300硬件协议驱动程序

基于stm32F103芯片的W5300以太网芯片的驱动程序。一定要注意接线方式,接线方式再Readme里面。一定要对应上才可以正常使用本程序。本程序亲测成功。不成功请留言。

2018-12-25

书籍《现场总线CANopen设计与应用》

第1章 通信和设备模型 1.1 通信层和参考模型 1.2 设备模型和兼容性等级 1.3 对象的描述与定义 第2章 物理层 2.1 位定时和位填充 2.2 高速收发器芯片 2.3 网络拓扑结构 2.4 连接器 第3章 CAN协议 3.1 报文格式 3.2 错误的检测、限制和处理 3.2.1 错误检测机制 3.2.2 无法检测到的错误 第4章 应用层 4.1 基本原理 4.2 通信对象 4.2.1 过程数据对象 4.2.2 服务数据对象 4.2.3 同步 4.2.4 发送设备错误信号 4.3 对象字典 4.3.1 对象词典的分配 4.3.2 通信参数的描述 4.3.3 对象字典的实现 4.4 网络管理系统 4.4.1 NMT服务与协议 4.4.2 设备监控 4.5 CAN标识符的分配 4.5.1 预定义主/从连接集 4.5.2 设备的基本功能 4.6 节点ID的分配 第5章 应用层的附加功能 5.1 可编程的CANopen设备 5.1.1 术语的定义 5.1.2 标准的网络启动 5.1.3 CANopen管理器的作用 5.1.4 可编程的CANopen设备的过程数据 5.1 I5网络变量 5.1.6 下载程序 5.2 网络组 5.3 安全数据传输协议 5.3.1 安全相关的数据对象SRDO 5.3.2 CANopen安全实施方案 第6章 设备子协议 6.1 基础 6.2 I/0模块的子协议 6.2.1 数字量输入 6.2.2 数字量输出 6.2.3 模拟量输入 6.2.4 模拟量输出 6.2.5 控制手柄 6.3 驱动和运动控制设备子协议 6.3.1 驱动器状态机 6.3.2 驱动器的工作模式 6.3.3 因数组 6.3.4 预定义PDO 6.4 传感器和测量设备的子协议 6.4.1 模拟量输入功能模块 6.4.2 调节器功能模块 6.4.3 报警功能模块 6.4.4 数字I/O功能模块 第7章 接口规范 第8章 应用规范 第9章 CANopen工具 第10章 CANopen设备及网络 附录A参考文献 附录B作者 附录C词汇表

2018-08-04

现场总线CANopen设计与应用

第1章 通信和设备模型 1.1 通信层和参考模型 1.2 设备模型和兼容性等级 1.3 对象的描述与定义 第2章 物理层 2.1 位定时和位填充 2.2 高速收发器芯片 2.3 网络拓扑结构 2.4 连接器 第3章 CAN协议 3.1 报文格式 3.2 错误的检测、限制和处理 3.2.1 错误检测机制 3.2.2 无法检测到的错误 第4章 应用层 4.1 基本原理 4.2 通信对象 4.2.1 过程数据对象 4.2.2 服务数据对象 4.2.3 同步 4.2.4 发送设备错误信号 4.3 对象字典 4.3.1 对象词典的分配 4.3.2 通信参数的描述 4.3.3 对象字典的实现 4.4 网络管理系统 4.4.1 NMT服务与协议 4.4.2 设备监控 4.5 CAN标识符的分配 4.5.1 预定义主/从连接集 4.5.2 设备的基本功能 4.6 节点ID的分配 第5章 应用层的附加功能 5.1 可编程的CANopen设备 5.1.1 术语的定义 5.1.2 标准的网络启动 5.1.3 CANopen管理器的作用 5.1.4 可编程的CANopen设备的过程数据 5.1 I5网络变量 5.1.6 下载程序 5.2 网络组 5.3 安全数据传输协议 5.3.1 安全相关的数据对象SRDO 5.3.2 CANopen安全实施方案 第6章 设备子协议 6.1 基础 6.2 I/0模块的子协议 6.2.1 数字量输入 6.2.2 数字量输出 6.2.3 模拟量输入 6.2.4 模拟量输出 6.2.5 控制手柄 6.3 驱动和运动控制设备子协议 6.3.1 驱动器状态机 6.3.2 驱动器的工作模式 6.3.3 因数组 6.3.4 预定义PDO 6.4 传感器和测量设备的子协议 6.4.1 模拟量输入功能模块 6.4.2 调节器功能模块 6.4.3 报警功能模块 6.4.4 数字I/O功能模块 第7章 接口规范 第8章 应用规范 第9章 CANopen工具 第10章 CANopen设备及网络 附录A参考文献 附录B作者 附录C词汇表

2018-08-04

Visual+Assist +10.9 2010-2017均可用

Visual+Assist+X+vs各版本均可以使用。具体可查看博客内容编程工具类教程。

2018-05-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除