- 博客(155)
- 资源 (4)
- 收藏
- 关注
转载 技术之我观
2001年秋天互联网公司(dot-com)泡沫的破灭是互联网的一个转折点。许多人断定互联网被过分炒作,事实上网络泡沫和相继而来的股市大衰退看起来像是所有技术革命的共同特征。股市大衰退通常标志着蒸蒸日上的技术已经开始占领中央舞台。假冒者被驱逐,而真正成功的故事展示了它们的力量,同时人们开始理解了是什么将一个故事同另外一个区分开来。
2014-10-01 21:09:27
1121
转载 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
1129
转载 备份,预编译头文件
一、什么是预编译头?所谓预编译头,就是把头文件事先编译成一种二进制的中间格式,供后续的编译过程使用。预编译头物理上与通常的.obj文件是一样的,但是千万不要把这个中间格式与. o/.obj/.a/.lib的格式混淆,他们是截然不同的!所以预编译头文件的特性和目标文件也不同(尽管他们都属于某种中间文件)。编译入预编译头的.h,.c,.cpp文件在整个编译过程中,只编译一次,如预编译头所涉及的
2014-03-07 23:05:33
862
转载 Windows上没法用socket抓MAC层的数据,只能用raw socket抓到IP层及之上的数据.
Windows上没法用socket抓MAC层的数据,只能用raw socket抓到IP层及之上的数据.
2014-03-03 14:59:27
2034
转载 CCS架构与starterware SDK结构解析
一般用CCS建工程分为两种方式一种是库方式,一种是非库方式。像Starterware SDK的例子程序里面都是采用库的方式,将底层的驱动或者系统等相关的文件编译成.lib的库形式。再通过头文件的形式在编译环境当中调用。当我们调用它所对应的文件的时候应该要将它所对应的库加入到ccs工程里面作为工程的输入。MAP文件是CCS软件编译后产生的有关DSP用到所有程序、数据及IO空间的一种映射文
2013-10-06 01:25:56
3334
原创 EtherCAT之对象字典解析
关于对象字典的数据结构如下:/*///////////////////////////////////////////////////////////////////////////////////////////// Object dictionary entry structure*/typedef struct OBJ_ENTRY{#if !STATIC_OBJECT_D
2013-09-03 10:59:41
8654
原创 关于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
4772
原创 整合
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
3074
原创 SdoRes
//////////////////////////////////////////////////////////////////////////////////////////** \param abort SDO接近的结果 \param command SDO的命令索引 \param completeAccess 指
2013-08-15 00:00:24
1129
原创 COE_Main()函数
//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数是在背后调用的,它不影响ECAT_Application在同步模式*///////////////////////////////////////////////////////
2013-08-12 22:36:25
2013
原创 AL_ControlRes
另外,这里有一个应用程序特别的检查(在ecatappl.c里面),如果状态转换从INIT到BOOT应该被完成,如果结果是NOERROR_INWORK,从站应该停留在INIT状态直到超时或者转换应该在AL_ControlRes里面完成//////////////////////////////////////////////////////////////////////////////////
2013-08-12 17:09:06
2939
原创 ECAT_CheckWatchdog()
//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数检查看门狗和应该被调用每1ms \brief 如果看门狗在SAFEOP(当bEcatInputUpdateRunning == true)c超时,只有标志位将会被重置 \brief
2013-08-11 17:12:33
1972
原创 DC_CheckWatchdog
//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数检查当前的Sync状态和设置本地的标志位,本地地址的分析是在“checkIfEcatError”里面处理*///////////////////////////////////
2013-08-11 16:30:16
2355
原创 ECAT_StateChange——EtherCAT状态转换
//////////////////////////////////////////////////////////////////////////////////////////** \param alStatus: 所需的状态 \param alStatusCode: 应用层状态寄存器的值 \brief 如果所需要的状态比实际状态要低,这个函数改变EtherCAT从
2013-08-11 14:50:50
3759
原创 ECAT_Init接口初始化函数
//////////////////////////////////////////////////////////////////////////////////////////** \brief This function initialize the EtherCAT Slave Interface.这个函数初始化EtherCAT从站的接口*//////////////////
2013-08-11 10:10:50
2727
1
原创 往死里写——ECAT_Main()状态机处理
//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数被周期性得调用.*/////////////////////////////////////////////////////////////////////////////
2013-07-23 17:08:32
6709
3
原创 往死里写——SDOS_SdoInfoInd
//////////////////////////////////////////////////////////////////////////////////////////** \param pSdoInfoInd 指向接收邮箱的数据,数据从主站读到的. \return 指示,如果一个当操作的时候,一个错误发生 ( good = 0 ). \brief
2013-07-21 23:05:06
1985
原创 往死里写——MBX_Main()
//////////////////////////////////////////////////////////////////////////////////////////** \brief 这个函数被周期性得检查,看邮箱服务是否已经有存储*/////////////////////////////////////////////////////////////////////
2013-07-18 11:32:07
3124
原创 往死里写——mainloop函数
void MainLoop(void){ /* 当运行在FreeRun-Mode: bEscIntEnabled = FALSE, bDcSyncActive = FALSE 当运行在Synchron-Mode: bEscIntEnabled = TRUE, bDcSyncActive = FALSE 当运行在DC-Mode:
2013-07-18 09:54:51
6657
原创 邮箱发送
//////////////////////////////////////////////////////////////////////////////////////////** \param pMbx 指针指向发送给主站的邮箱命令. \brief 这个函数拷贝数据到发送邮箱.*//////////////////////////////////////
2013-07-17 18:28:59
1292
原创 往死里写--邮箱处理
//////////////////////////////////////////////////////////////////////////////////////////** \param pMbx 指针指向发送邮箱的命令(由主站来读) \param flags Bit 0-6: 邮箱协议的类型:
2013-07-17 15:23:55
1626
原创 往死里写——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
1948
原创 往死里写——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
3543
原创 往死里写——从站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
4268
原创 往死里写
/*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
1313
原创 往死里写——Free_run Mode 程序实现
图1瀑布型的理解思路;当MailLoop在task1中,被周期性调用的时候。首先判断从站的工作状态是在FreeRun_mode,Synchron_mode还是DC_Mode我们今天来讨论最简单的情况,FreeRun_mode,它是通过bEscIntEnabled和bEcatFirstOutputsReceived来判断的在FreeRun_mode当中并不涉及到分布时钟。
2013-07-09 23:24:15
2715
原创 备份
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
705
转载 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
825
转载 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
1663
原创 开放点东西(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
2279
转载 分布时钟
分布时钟控制单元可以产生两个同步信号SYNC0和SYNC1,用于给应用层程序提供中断或直接触发输出数据的更新。同步信号的宽度由脉宽寄存器0x0982~0x0983设定,SYNC0信号周期时间由SYNC0周期时间寄存器设置。在同步单元被激活,SYNC0/1信号输出被使能后,同步单元等待开始时间到达后产生一个SYNC0脉冲。SYNC信号的刷新频率是100MHZ(10ns的刷新周期)。SYNC信号与
2013-07-03 15:34:32
1826
转载 #define DEBUG
则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将printf语句删除去。的确,这是可以的。但是,当调试时加的printf语句比较多时,修改的工作量是很大的。用条件编译,则不必一一删改printf语句,只需删除前面的一条“#define DEBUG”命令即可,这时
2013-07-02 15:24:35
1272
转载 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
892
原创 调节代码区域的长度,通过乘以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
659
原创 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
3119
UninstallTwinCatTwinSafeTabFix[2].pdf
2012-10-30
Windows Sockets 规范及应用
2012-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人