Horace_Lu的个人空间 https://www.eechina.com/space-uid-34710.html [收藏] [复制] [RSS]

博客

Malloc的使用
2016-11-2 17:27
malloc的正确用法,保证malloc返回的指针不被改变(因为它是一片内存的首字节指针): char *pUse,*pMal; pMal = malloc(sizeof(int)*6); if (NULL != pMal) { pUse = pMal; } else { printf("malloc error exit\n"); exit(-1); } for (i=0;i6;i++) { ...
个人分类: 嵌入式开发|1100 次阅读|0 个评论
嵌入式系统中C语言的预处理技巧
2016-11-2 17:25
#define SWAP16(x) (((x 0xff) 8) | (x 8)) (留空待补充) inline函数 在 c++中,关键字inline 可以被加入到任何函数的声明。这个关键字请求编 译器用函数内部的代码替换所有对于指出的函数的调用。这样做删去了和实际 函数调用相关的时间开销,这种做法在inline 函数频繁调用 ...
个人分类: 嵌入式开发|1272 次阅读|0 个评论
嵌入式系统C语言enum的用法
2016-11-2 17:22
enum可以代替部分#define宏定义,如果宏定义为数组个数,不能用enum替代。 例: enum ata_tf_protocols { ATA_PROT_UNKNOWN, ATA_PROT_NODATA, ATA_PROT_PIO, ...
个人分类: 嵌入式开发|1207 次阅读|0 个评论
开关量变位的巡检程序
2016-11-2 17:21
在电力系统中应用的电力设备,经常有开关量状态需要转化为0或1的数字量上传至决策单元。开关量巡检的程序如下构造比较合理: unsigned int oldFlag,curFlag,flag; int i; oldFlag=0; while(1) { curFlag = getNewFlag(); flag = oldFlag^curFlag; ...
个人分类: 嵌入式开发|1124 次阅读|0 个评论
嵌入式系统C语言常用位操作
2016-11-2 17:20
C语言中的基本位操作运算符: 按位取反:~ 位与: 位或:| 位异或:^ 移位运算:左移 右移 组合用法: 1、掩码: #define MASK 0xff unsigned ...
个人分类: 嵌入式开发|1039 次阅读|0 个评论
vxWorks中Timer相关的测试程序
2016-11-2 17:18
#include "timers.h" #include "time.h" void initTimer(void); void timerSR(void); timer_t mytimer; struct timespec timeValue; struct timespec timeInterval; struct itimerspec timeToSet; void initTimer(void) { timeInterval.tv_sec=2; timeInterval.tv_nsec=0; timeValue.tv_nsec=0; timeVal ...
个人分类: 嵌入式开发|1364 次阅读|0 个评论
AT91RM9200 EMAC的MAC配置
2016-11-2 17:17
配置SA1L和SA1H寄存器时,假如MAC地址是00:11:22:33:44:55,即At91EnetAddr ={0x00,0x11,0x22,0x33,0x44,0x55},则正确的赋值方式是: for (i = 0; i 6; ++i) { pDrvCtrl-enetAddr = At91EnetAddr ; } pEmac ...
个人分类: 嵌入式开发|949 次阅读|0 个评论
千兆PHY与RJ45接口线序
2016-11-2 17:14
千兆PHY通过网络变压器连接到RJ45接口,一共有4对差分线MDI +/-。一般的接法是: MDI + : RJ45 MDI - : RJ45 MDI + : RJ45 MDI - : RJ45 MDI + : RJ45 MDI - : RJ45 MDI + : RJ45 MDI - : RJ45 RJ45 连接器的线序与水晶头的压接顺序一致。
个人分类: 硬件设计|1416 次阅读|0 个评论
修改vxWorks串口驱动程序总结
2016-11-2 17:12
串口驱动程序的入口文件:config/bsp/sysSerial.c 1、在sysSerialHwInit()函数中初始化串口相关的硬件,最后调用m8260SioDevInit(scc8260_chan) 2、在sysSerialHwInit2()中连接中断: (void)intConnect(INUM_TO_IVEC(INUM_SCC1), (VOIDFUNCPTR)m8260SioInt, (int)scc8260_chan); 3、在sysSe ...
个人分类: 嵌入式开发|1056 次阅读|0 个评论
vxworks内存布局
2016-11-2 17:11
vxworks内存布局
LOCAL_MEM_LOCAL_ADRS为物理内存的起始点,一般为0x00000000; RAM_LOW_ADRS为vxWorks映像加载起始点; FREE_RAM_ADRS为vxWorks映像加载结束点; sysPhysMemTop( )为物理内存顶点; sysMemTop( )为系统内存顶点,sysMemTop( ) = sysPhysMemTop () - USER_RESERVED_MEM; FREE_RAM_ADRS+WDB_POOL_SIZE为system memory ...
个人分类: 嵌入式开发|1175 次阅读|0 个评论
12下一页
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部