分类 工作 下的文章
所有工作项目相关的invalid application of 'sizeof' to incomplete type 关于 extern 的问题
今天使用GCC编译的时候发现了一个错误,invalid application of 'sizeof' to incomplete type 。 这个错误的原因是sizeof是在编译阶段进行计算的,而extern是在链接阶段工作的,所以在多文件的时候会出现这个错误。 解决办法也很简单,就是在头...
sdcard 调试问题
在使用rtthread调试sdcard是出现了一下问题,总结如下。 在FindSCR 函数中死循环。 解决方法: 在FindSCR函数的 while循环中,增加跳出即可。 在index++; 下面增加 if (index >= 2) break; 写入出错,总是提醒 write f...
allegro artwork设置和颜色设置的导入导出
allegro 使用artwork出gerber的关键就是每张底片的颜色输出,所以能够导出颜色和artwork的设置对于提高工作效率而言是很有帮助的。 首先是配置top层的颜色设置,然后 view->color view save=> 把颜色设置保存下来。使用相同的办法可以把其他所...
uboot 2008.10 移植TQ2440 手记 DM9000
本次网卡移植参考国嵌实验 在include/configs/tq2440.h中 58行左右 / modified by ptz , for tq2440, dm9000 / define CONFIG_DRIVER_CS8900 1 / we have a CS8900 on-board / ...
uboot 2008.10 移植TQ2440 手记 准备工作
打开 u-boot 主上目录下的 Makefile , 找到 smdk2410_config, 在其下 , 加入 smdk2410_config : unconfig @(MKCONFIG)(@:_config=) arm arm920t smdk2410 NULL s3c24x0 tq244...
fork 与 printf("\n")
fork 作用是建立一个子进程,父子进程之间在fork()之后分道扬镳,子进程会获得一个父进程数据的副本。 在fork语句之前,printf有没有增加"\n"是非常重要的。如果没有"\n"那么printf的内容会写入显示缓冲,那么fork之后,子进程也会...
MSP430 basic timer 基本定时器中断时间的计算
最近做用430结果被BT定时器折腾了。BT定时器和以前接触过的AVR的普通定时器不太一样。以前的定时器都是计数到FF然后产生溢出中断。而BT定时器不一样。 MSP430 basic timer 基本定时器中断时间的计算 - ptz19861212 - ptz19861212的博客 BT定时器是...
CC1101 不定数据包长度 注意点
CC1101 在使用不定数据包长度的情况下,有一个需要注意的地方。当通讯不畅的时候,很可能长度字节接收出错,如果这时候,接收数组的长度不够的话,就会造成接收函数写入数组越界,所以在接收函数中需要加入对长度字节的判断,使得数组不会越界。
C语言中typedef用法
基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声...
结构体数组,函数指针
C中结构体数组的使用 在.h中 typedef struct value_channel { unsigned char dir; unsigned int ADCValue[128]; }v_c; extern v_c value[4]; 在.c中 v_c value[4]; 函数指针 v...
最新回复