自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (4)
  • 收藏
  • 关注

转载 技术之我观

2001年秋天互联网公司(dot-com)泡沫的破灭是互联网的一个转折点。许多人断定互联网被过分炒作,事实上网络泡沫和相继而来的股市大衰退看起来像是所有技术革命的共同特征。股市大衰退通常标志着蒸蒸日上的技术已经开始占领中央舞台。假冒者被驱逐,而真正成功的故事展示了它们的力量,同时人们开始理解了是什么将一个故事同另外一个区分开来。

2014-10-01 21:09:27 1065

原创 EtherCAT SDO协议

基于EtherCAT从站协议,SDO协议比EtherCAT本身要复杂得多。

2014-04-08 05:09:30 6893 1

转载 Internet interrupt

Interrupt PacingThe receive and transmit pulse interrupts can be paced. The receive threshold and miscellaneousinterrupts are not paced. The Interrupt pacing feature limits the number of interrupts th

2014-03-20 17:19:05 1058

转载 备份,预编译头文件

一、什么是预编译头?所谓预编译头,就是把头文件事先编译成一种二进制的中间格式,供后续的编译过程使用。预编译头物理上与通常的.obj文件是一样的,但是千万不要把这个中间格式与. o/.obj/.a/.lib的格式混淆,他们是截然不同的!所以预编译头文件的特性和目标文件也不同(尽管他们都属于某种中间文件)。编译入预编译头的.h,.c,.cpp文件在整个编译过程中,只编译一次,如预编译头所涉及的

2014-03-07 23:05:33 831

转载 Windows上没法用socket抓MAC层的数据,只能用raw socket抓到IP层及之上的数据.

Windows上没法用socket抓MAC层的数据,只能用raw socket抓到IP层及之上的数据.

2014-03-03 14:59:27 1980

转载 CCS架构与starterware SDK结构解析

一般用CCS建工程分为两种方式一种是库方式,一种是非库方式。像Starterware SDK的例子程序里面都是采用库的方式,将底层的驱动或者系统等相关的文件编译成.lib的库形式。再通过头文件的形式在编译环境当中调用。当我们调用它所对应的文件的时候应该要将它所对应的库加入到ccs工程里面作为工程的输入。MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文

2013-10-06 01:25:56 3216

原创 EtherCAT之对象字典解析

关于对象字典的数据结构如下:/*///////////////////////////////////////////////////////////////////////////////////////////// Object dictionary entry structure*/typedef struct OBJ_ENTRY{#if !STATIC_OBJECT_D

2013-09-03 10:59:41 7966 2

原创 关于SYS/BIOS,将中断处理放在HWI的做法

通过定义一种结构体typedef struct __pruss_irq_fn_map{ //Interrupt handler PRUSSDRV_IRQ_HANDLER irqHandler; //Binary semaphore to wait on Semaphore_Handle semHandle;}pruss_irq_fn_map;将中断处理函数和信号量相互整合在一起

2013-08-24 11:32:23 4680

原创 TwinCAT与AMD的处理器的不兼容问题

TwinCAT与AMD处理器是不兼容的,与非Intel的网卡的实时性得不到保证。

2013-08-19 07:41:03 3722 1

原创 整合

Ethercat 程序与完整的EtherCAT 应用程序存在着区别。unsigned short Ecat_Open(void){ UINT16 result = 0; //开始函数应该被调用一次 if(HardwareOpened != 0) return 1; u32Input = 0; u32Output = 0;

2013-08-16 16:46:47 2814 1

原创 SdoRes

//////////////////////////////////////////////////////////////////////////////////////////** \param abort SDO接近的结果 \param command SDO的命令索引 \param completeAccess 指

2013-08-15 00:00:24 1006

原创 COE_Main()函数

//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数是在背后调用的,它不影响ECAT_Application在同步模式*///////////////////////////////////////////////////////

2013-08-12 22:36:25 1903

原创 AL_ControlRes

另外,这里有一个应用程序特别的检查(在ecatappl.c里面),如果状态转换从INIT到BOOT应该被完成,如果结果是NOERROR_INWORK,从站应该停留在INIT状态直到超时或者转换应该在AL_ControlRes里面完成//////////////////////////////////////////////////////////////////////////////////

2013-08-12 17:09:06 2755

原创 ECAT_CheckWatchdog()

//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数检查看门狗和应该被调用每1ms \brief 如果看门狗在SAFEOP(当bEcatInputUpdateRunning == true)c超时,只有标志位将会被重置 \brief

2013-08-11 17:12:33 1716

原创 DC_CheckWatchdog

//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数检查当前的Sync状态和设置本地的标志位,本地地址的分析是在“checkIfEcatError”里面处理*///////////////////////////////////

2013-08-11 16:30:16 2190

原创 ECAT_StateChange——EtherCAT状态转换

//////////////////////////////////////////////////////////////////////////////////////////** \param alStatus: 所需的状态 \param alStatusCode: 应用层状态寄存器的值 \brief  如果所需要的状态比实际状态要低,这个函数改变EtherCAT从

2013-08-11 14:50:50 3431

原创 ECAT_Init接口初始化函数

//////////////////////////////////////////////////////////////////////////////////////////** \brief This function initialize the EtherCAT Slave Interface.这个函数初始化EtherCAT从站的接口*//////////////////

2013-08-11 10:10:50 2494 1

原创 往死里写——ECAT_Main()状态机处理

//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数被周期性得调用.*/////////////////////////////////////////////////////////////////////////////

2013-07-23 17:08:32 5916 2

原创 往死里写——SDOS_SdoInfoInd

//////////////////////////////////////////////////////////////////////////////////////////** \param pSdoInfoInd 指向接收邮箱的数据,数据从主站读到的. \return 指示,如果一个当操作的时候,一个错误发生 ( good = 0 ). \brief

2013-07-21 23:05:06 1751

原创 往死里写——MBX_Main()

//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数被周期性得检查,看邮箱服务是否已经有存储*/////////////////////////////////////////////////////////////////////

2013-07-18 11:32:07 2666

原创 往死里写——mainloop函数

void MainLoop(void){ /* 当运行在FreeRun-Mode: bEscIntEnabled = FALSE, bDcSyncActive = FALSE 当运行在Synchron-Mode: bEscIntEnabled = TRUE, bDcSyncActive = FALSE 当运行在DC-Mode:

2013-07-18 09:54:51 6409

原创 邮箱发送

//////////////////////////////////////////////////////////////////////////////////////////** \param pMbx 指针指向发送给主站的邮箱命令. \brief 这个函数拷贝数据到发送邮箱.*//////////////////////////////////////

2013-07-17 18:28:59 1209

原创 往死里写--邮箱处理

//////////////////////////////////////////////////////////////////////////////////////////** \param pMbx 指针指向发送邮箱的命令(由主站来读) \param flags Bit 0-6: 邮箱协议的类型:

2013-07-17 15:23:55 1539

原创 往死里写——SDO处理2-2

\brief    当SDO响应需要被发送的时候,这个函数将会被调用void SdoRes(UINT8 abort, UINT8 command, UINT8 completeAccess, UINT16 dataSize, UINT32 objLength, TINITSDOMBX MBXMEM *pSdoRes){ /* 对于上传分段响应,这个转换位将会被设置 */ if (

2013-07-14 17:27:46 1801

原创 往死里写——SDO处理过程2-1

UINT8 SDOS_SdoInd(TINITSDOMBX MBXMEM *pSdoInd){ UINT8 abort = 0; UINT8 sdoHeader = pSdoInd->SdoHeader.Sdo[SDOHEADER_COMMANDOFFSET] & SDOHEADER_COMMANDMASK; /* the SDO-command is in bit 5-

2013-07-13 19:11:18 3183 1

原创 往死里写——从站mailbox实现

void ECAT_Main(void)函数里面首先检查是否有服务储存在mailbox里面。调用MBX_Main();(This function is called cyclically to check if a received Mailbox service was stored?)在MBX_Main(void)里面获得mailbox的接受队列里面的邮箱赋予pMbx。通过函数M

2013-07-13 15:40:00 3901

原创 往死里写

/*The order of mailbox event processing was changed to prevent race condition errors.        The SM1 activate Byte (Register 0x80E) was read before reading AL Event register.        1. Handle Mail

2013-07-10 17:27:48 1277

原创 往死里写——Free_run Mode 程序实现

图1瀑布型的理解思路;当MailLoop在task1中,被周期性调用的时候。首先判断从站的工作状态是在FreeRun_mode,Synchron_mode还是DC_Mode我们今天来讨论最简单的情况,FreeRun_mode,它是通过bEscIntEnabled和bEcatFirstOutputsReceived来判断的在FreeRun_mode当中并不涉及到分布时钟。

2013-07-09 23:24:15 2495

转载 同步方式

2013-07-09 10:57:42 820

原创 备份

The characteristics for all Objects are collected in one panel, the Object Dictionary. This Dictionaryrepresents the Interface for the EtherCAT master. In this paragraph we classify the objects into t

2013-07-09 07:51:09 680

转载 Implement of ESC_HW

2013-07-08 10:40:30 638

转载 Synchronization with other Devices

EtherCAT provides various synchronization options. There are three different types of synchronization methods available.• FreerunThe slave device application runs independently of the EtherC

2013-07-08 09:44:55 785

转载 EtherCAT State Machine Transitions

SyncManagers are enabled by the following settings of the master during network initialization.- Physical address of ESC- Data length- SyncManager control input:i. Operation mode (mailbox-mode

2013-07-07 23:06:12 1524

原创 开放点东西(AM3359)EtherCAT

for (i=0; i < 10; i++) pRegPerm->reg_properties[i]= TIESC_PERM_READ_ONLY; pRegPerm->reg_properties[0x10]= TIESC_PERM_RW;//Configured Station address pRegPerm->reg_properties[0x11]= T

2013-07-03 16:21:41 2185

转载 分布时钟

分布时钟控制单元可以产生两个同步信号SYNC0和SYNC1,用于给应用层程序提供中断或直接触发输出数据的更新。同步信号的宽度由脉宽寄存器0x0982~0x0983设定,SYNC0信号周期时间由SYNC0周期时间寄存器设置。在同步单元被激活,SYNC0/1信号输出被使能后,同步单元等待开始时间到达后产生一个SYNC0脉冲。SYNC信号的刷新频率是100MHZ(10ns的刷新周期)。SYNC信号与

2013-07-03 15:34:32 1634

转载 #define DEBUG

则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将printf语句删除去。的确,这是可以的。但是,当调试时加的printf语句比较多时,修改的工作量是很大的。用条件编译,则不必一一删改printf语句,只需删除前面的一条“#define DEBUG”命令即可,这时

2013-07-02 15:24:35 1236

转载 skeleton application code

/* Driver header file */ #include #include #define PRU_NUM 0 /* IRQ handler thread */ void *pruevtout0_thread(void *arg) { do { prussdrv_pru_wait_event (PRU

2013-06-27 11:03:54 848

原创 调节代码区域的长度,通过乘以4

//Adjust length as multiple of 4 bytes    wordlength = (bytelength + 3) >> 2;         for (i = 0; i     {        HWREG( pruMem + (i     }    return wordlength;}

2013-06-21 15:16:10 631

原创 函数指针

指针函数是指函数的返回值为指针的函数。前面提到,指针可以作为函数的参数,其实,函数的返回值也可以使指针类型的数据。

2013-06-20 08:42:32 652

原创 TI SYS/BIOS cortex A8 开发

/* * hwihookexample.c * * Created on: 2013-4-25 * Author: Administrator * * This example demonstrates basic Hwi hook usage. */#include #include #include #include #include #inclu

2013-04-25 16:34:40 3033

UninstallTwinCatTwinSafeTabFix[2].pdf

Do U know how to uninstall the TwinCAT?If U meet some troblem in uninstalling TwinCAT.Look at this.

2012-10-30

Windows Sockets 规范及应用

本书适应了Windows、Internet及计算机网络普及的潮流,介绍了一套在Windows 下网络编程的规范-Windows Sockets。这套规范是Windows下得到广泛应用的、开 放的、支持多种协议的网络编程接口。从1991年的1.0版到1995年的2.0.8版,经 过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下, 已成为Windows网络编程的事实上的标准。为使读者能够充分理解和应用这套规 范,本书不但对Windows Sockets 1.1及2.0规范作了较为详尽的介绍,还结合了作 者的实际工作,给出了具有实际应用价值的程序实例。书中的内容包括:Windows Sockets规范1.1版及2.0.8版介绍;Windows Sockets网络编程指导和具体应用实例; Windows Sockets规范1.1版及2.0.8版库函数参考等。

2012-08-22

RTX-tiny_518位单片机操作系统

资源包括,两个任务;主要是验证了RTX的任务创建,切换,和一些常见的内核配置。

2012-03-26

ucosII,任哲书里面的部分程序

书还没看完,例子只写了一部分。嵌入式实时操作系统UC/OS-ii。任哲版,用BC31编的。

2012-01-04

空空如也

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

TA关注的人

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