KeilC51数据类型转换应注意
*在KEIL中调试发现*例1:......unsigned long int b;unsigned int x;x=968;b=100*x;b=96800-65536;例2:......unsigned long int b,x;x=968;b=100*x;b=96800;例3:......unsigned long int b;unsigned int x;x=96...
HEX文件和BIN文件格式的区别
HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别:1 - HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部...
关于C语言编程中include的用法
文件包含命令行的一般形式为:#include"文件名"文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。在程序设计中,文件包含是很有用的。一个大的程序可...
C语言中常见的置位操作
如何对某一位置0或者置1?方法一:写成宏,方便移植#define setbit(x,y) x|=(1<<y) //将X的第Y位置1#define clrbit(x,y) x&=~(1<<y) //将X的第Y位清0方法二:C语言位运算除了可以提高运算效率外,在嵌入式系统的编程中,它的另...
Python调试技巧
1. print不要看不起print,这是一切调试的起点,即便是调试Java或者C这种巨麻烦的编译语言,print仍然是常用工具。当然,我们讲的是Python,是比Java和C要方便100倍的动态解释语言,因此这个print就更有力了。至于语法如何,不用我...
内嵌式的语言PHP应用技巧七则
1、判断某个函数是否被支持由于在PHP中我们可以灵活的使用增加或者减少php支持的模块,所以有的时候我们在使用PHP之前,总是会首先确定某个模块是否被加载,比如,看看GD图形模块是否被支持,可以用下面的这段代码:if(!function...
C语言的interwork实例
/*************************************************************************thumbmain.c**该程序是Thumb程序,子程序arm_function(void)为ARM程序***************************************************************...
在C51中变量的空间分配几个方法
在C51中变量的空间分配几个方法1、data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。2、data区内最好放局部变量。因为局部变量的空间是可以覆盖的(某个函数的局部变量空...
Linux下I2C设备驱动开发和实现
1 I2C总线概述I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,每个器件都有一个惟一的地址识别。I2C 规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件...
谈谈C51的编程规范
现在单片机的程序设计,C51已经得到广泛的推广和应用,算是单片机的主流设计程序,甚至可以说作为单片机开发人员必须要掌握的一门语言了。作为一门工具,最终的目的就是实现功能。在满足这个前提条件下,我们希望我们的程序能...
嵌入式开发中typedef用法
typedef用法typedef声明,简称typedef,为现有类型创建一个新的名字。比如人们常常使用typedef来编写更美观和可读的代码。所谓美观,意指typedef能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的...
c语言复习小记
c语言的指针确实很灵活,尤其和数组结合起来用的时候,非常方便。二维数组和指针结合起来用的时候要复杂一些,注意一下形式的定义:int (*p)[4]; //定义一个指向包含4个整数元素的指针int *p[4];//定义一个指针数组,该指针数...
嵌入式汇编语言学习经验
首先遇到的第一个问题是,格式到底是什么。上网查资料,前篇一律,都是_asm_ _volatile_(…);格式,但是自己弄的时候总是不行,说明网络虽好,但是不可盲目相信。经过多番测试,我发现windows下嵌入式汇编的格式只有_asm关键...
汇编程序设计之伪指令
1、 设置起始地址ORG格式: ORG nn ;nn是16位二进制数;nn给出了存放的超始地址值给程序起始地址或数据块的起始地址赋值。它总是出现在每段源程序或数据块的开始。在一个源程序中可以多次使用ORG命令,以规定不同程序段或...
ubuntu创建、删除文件及文件夹,强制清空回收站方法
mkdir 目录名 => 创建一个目录rmdir 空目录名 => 删除一个空目录rm 文件名 文件名 => 删除一个文件或多个文件rm –rf 非空目录名 => 删除一个非空目录下的一切touch 文件名 => 创建一个空文件重命名文件(夹) ...
优化C代码常用的几招
第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。比如说字符串的赋值:方法A:通常的办法#defineLE...
想成为嵌入式程序员应知道基本问题
一、预处理器(Preprocessor):1、用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#defineSECONDS_PER_YEAR(60*60*24*365)UL在这里可以看到:1)#define语法的基本知识(例如:不能以分号结束,括号的使用,等等)2...
C中如何直接嵌入汇编的方法
//#ifdef ASMunsigned long shiftR1(register unsigned long);#elseextern unsigned long shiftR1(register unsigned long);#endif//end of asm.h//#define ASM#include #include #pr...
KeilC编译器常见警告与错误信息的解决方法
1. Warning 280:’i’:unreferenced local variable说明局部变量i 在函数中未作任何的存取操作解决方法消除函数中i 变量的宣告2 Warning 206:’Music3’:missing function-prototype说明Music3(...
keil MDK中文系统下显示问题
MDK 的标题显示成 “礦ision3",前面的这个不是u而是一个希腊字母“缪”,在中文显示中出现问题,半个汉字.可以使用如下方法取消.一: 光标问题Keil uv3 中会出现光标定位不准的问题,对程序员来说是个很大的...
不同类型指针变量的具体含义
什么是指针变量?指针变量,本质上是一个变量,只是它是存放地址的变量,指针的类型代表的是它所指向的变量的类型。因此就有了指向整型、字符型、浮点型等其它类型的指针,但实际上所有类型的指针变量存放的都是int型(对于16位...
怎样在VS2005中添加自定义的C语言关键字
磨刀不误砍柴工;keil固然好用,但是写代码时,没有类似VC assist这样好用的软件,使得在keil编写代码效率低了;因此,我们计划:1 在VC上建立project,来编写C代码;顺便利用上VC assist了;2 调用keil编译器进行编译,以生成hex文件;3 VC...
C语言中函数回调
什么是回调函数?简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。为什么要使用回调函数?因为可以把调用...
函数指针和函数指针数组的使用
笔者遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28...
linux中vmalloc和相关函数的应用
vmalloc其实是内存分配函数,它分配虚拟地址空间的连续区域。尽管这段区域在物理上可能是不连续的(要访问其中的每个页面都必须独立地调用函数__get_free_page),内核却认为它们在地址上是连续的。分配的内存空间被映射进...
在编写Verilog的时候一点看法
在编写Verilog的时候一点看法:每个人的代码风格都可能不一样,但是好的代码风格会给自己和同事带去很大的方便,也许大家刚开始没有注意到这点。再过了很长的时候后你回过头来看你的代码架构不会那么乱,一看你的模块就知道...
得到一个field在结构体中的偏移量
宏定义:得到一个field在结构体(struct type)中的偏移量#defineOFFSETOF(type,field)((u32)&(((type*)0)->field))(type*)0:把0地址当成type类型的指针。((type*)0)->field:对应域的变量。&((type*)0)->field:取该变量的地...
10种软件滤波法
1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起...
结构体指针变量使用时的注意事项
在使用结构体指针变量的时候,往往容易犯一个“低级”错误。即定义一个结构体指针变量后就直接对结构体指针变量所指向的结构体成员进行操作,从而产生一些莫名其妙的错误。我们必须要给结构体指针变量赋予一个...
keil c51程序设计中集中精确延时方法
1使用定时器/计数器实现精确延时单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。本程序中假设使用频率为12 MHz...
Modelsim时序仿真中遇到的三个问题
我很少做时序仿真(记忆中针对8051的IP core做过QuartusII下面的时序仿真,针对Samsung的一款Nand Flash仿真模型做过Modelsim下的时序仿真)。一是因为仿真速度慢;二是因为仿真的对象是布局布线后的门级网表,许多信号都消失...
常量与变量的用法
常数要求:避免程序中间的不加解释的常数,方法:用命名常量来代替它,在需要时可以使用常数“0”或“1”采取预防被"0"除的措施程序中避免了混合类型比较(如浮点型和整型的比较)命名常量命名常量很像一...
ARM程序由于字节对齐引起的问题深入分析
首先说说,什么叫对齐。如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐;半字对齐的特征是bit0=0,其他位为任意值。字对齐的特征是bit1=0,bit0=0,其他位为任意值。如果一个数据是以能被4 整...
为什么需要字节对齐?
一、概念对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。二、为什么要字节对齐需要字节...
从一维数组看sizeof和strlen
前几天学习一维数组的赋值的时候遇到这样一个问题,程序如下:char a[]="hello";char b[5]={'h','e','l','l','o'};char c[]={'h','e','l','l','o','\0'};char *d="hello";printf("%d,%d\n...
IAR开发环境中的数据、函数定位方法
一、在IAR的集成开发环境中实现数据变量定位方法如下三种1、__no_initcharalpha@0x0200;2、#pragmalocation=0x0202constintbeta;3、constintgamma@0x0204=3;或:1)__no_initintalpha@"MYSEGMENT";//MYSEGMENT段可在XC...
不同C编译器注意事项
目前单片机有多种C编译器,不同编译器之间有很多区别。总结后,主要有以下几点,需要弄清楚:1.寄存器的定义不少编译器已经自带了寄存器的定义文件,比如AT89S52, 使用KEIL C V2.0 环境, 程序可以直接调用寄存器定义文件。 例如...
KEIL C51代码优化详细分析
Keil C51总线外设操作问题的深入分析1问题回顾和分析在实际工作中遇到对同一端口反复连续读取,Keil C51编译并未达到预期的结果。对C编译出来的汇编程序进行分析发现,对同一端口的第二次读取语句并未被编译。对此问题...
c语言中!与~有什么区别?
! 这个是逻辑反,凡是a的值不为0的,!a 就等于0; 如果a的值为0,则 !a 的值为1而~这个是 按位取反比如 int a=2 ; 用二进制表示为00 00 00 10;则 !a = 0而 ~a = 11 11 11 01但是应但注意的是,按位取反后的二进制结果为补码形...
程序调试(除错)过程中的一些雕虫小技
一、磨刀不误砍柴功在调试之前,需要掌握以下一些基本功:1、熟悉当前的开发(调试)环境,比如:设置断点、单步运行、全速运行、终止运行,查看RAM、查看堆栈、查看IO口状态……总之,要熟练掌握基本操作的方法,并深刻了...
如何使用assert_param
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有...
C语言宏定义技巧(常用宏定义)
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。1、 防止一个头文件被重复包含#ifndefCOMDEF_H#defineCOMDEF_H//在这里写头文件内容#endif2...
Linux下删除Grub程序的方法
Linux的grub是一个非常好的引导程序,它可以引导多操作系统。当Windows和Linux共存时,删除grub直接进入windows方法: 方案1:用Dos命令fdisk恢复主引导扇区MBR(Main/Master Boot Record)---用win98的引导盘或DOS引导盘引导系统...
编程中常见错误原因
1.拼写错误a) 变量名,宏名,函数名等拼写错误,在编译阶段直接报错;b) 变量名,宏名,函数名等拼写为相近的变量名,宏名,函数名等,在运行时出错;2.逻辑错误a) if语句的真值逻辑判断,没有包括全部的条件,或者包含了不需要的条件;b) 选择计...
算法优化的重要性
前些日子,在开发一个单片机的产品时,遇到这么一个问题,就是要将一个无符号的16位数,乘以1.2288后,再赋给另一个无符号的16位数。用C语言可以描述如下:INT16U x,y;y = (INT16U)((float)x * 1.2288); // 注:x的取值范围是500到...
使用软件降低功耗的方法。
之所以使用“应用软件”的说法,是为了区分于“系统软件”或者“实时操作系统”。软件对于一个低功耗系统的重要性常常被人们忽略。一个重要的原因是,软件上的缺陷并不像硬件那样容易发现...
C语言编程的一些巧妙方法。
一、学习头文件包含巧妙用法当一个头文件被多个C文件包含,且该头文件中定义了这些C文件的公共变量,则在编译的时候会出现重复定义,导致编译通不过,通常我们会采用如下两种做法来解决上述问题。(为了让问题表述得更清楚,我们...
嵌入式编程里的绝对地址操作
*((void (*)( ))0x100000 ) ( );首先要将0x100000强制转换成函数指针,即:(void (*)())0x100000然后再调用它:*((void (*)())0x100000)();用typedef可以看得更直观些:typedef void(*)() voidFuncPtr;*((voidFuncPtr)0x...
Linux构建根文件系统//编译busybox出错
1、编译和配置 busybox错误 1:In file included from /opt/opt/FriendlyARM/toolschain/4.4.3/bin/../arm-none-linux-gnueabi//sys- root/usr/include/linux/netfilter_ipv4.h:8,from ipsvd/tcpudp.c:33:/opt/opt/Fri...
linux页面的回收
关于页面的使用在之前的一些文章中,我们了解到linux内核会在很多情况下分配页面。1、内核代码可能调用alloc_pages之类的函数,从管理物理页面的伙伴系统(管理区zone上的free_area空闲链表)上直接分配页面(见《linux内核内...
对嵌入式底层开发学习的一点看法
在老师的要求下。把 51 单片机着为入门嵌入式的接触 MCU ,现在想起来,老师做得很对,因为他当时要求我在两个月的时间内把 51 开发板板上的接口驱动都写出来,但是,不要求我把 51 搞太长的时间。只要知道怎么进行控制外设,但...
VirtualBox下设置共享文件夹并自动挂载
以下是设置的步骤:1.安装VirtualBox的VBoxGuestAddition.iso .在“设备”->“安装增强功能”。安装结束记得重启。以前在解决Ubuntu全屏显示时已经安装了,这里就跳过。2. VirtualBox的“设备&...
Linux下三种配置环境变量的方法
1.修改/etc/profile文件如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。(1)用文本编辑器打开/etc/profile(2)在profile文件末尾加入:JAVA_H...
总结:linux进程间通信的几种机制的比较及适用场合
1.# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘...
linux中相关网络配置文件
系统中重要的有关网络配置文件为:◆/etc/sysconfig/network◆/etc/HOSTNAME◆/etc/hosts◆/etc/services◆/etc/host.conf◆/etc/nsswitch.conf//主机名解析◆/etc/resolv.conf//DNS◆/etc/rc.d/init.d/network接下来...
Linux下查看文件和文件夹大小
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。du可以查看文件及文件夹的大小。两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定...
linux命令修改文件属性
ls -l即可查看目录信息-rwxr-xr-x 1 xura xura 1753786 2010-05-09 09:54 Grad分别对应的是:文件属性 连接数 文件拥有者 所属群组 文件大小 文件修改时间 文件名例如:d rwx r-x r-x第一个字符指定了文件类型。在通常...
linux su和sudo命令的区别
一. 使用 su 命令临时切换用户身份1、su 的适用条件和威力su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。解决...
总结:Linux中socket常见错误分析
一、连接过程出错分析(1)如果客户机TCP协议没有接收到对它的SYN数据段的确认,函数以错误返回,错误类型为ETIMEOUT。通常TCP协议在发送SYN数据段失败之后,会多次发送SYN数据段,在所有的发送都高中失败之后,函数以错误返回。(2)...
Linux 下的多进程编程
(一) 理解Linux下进程的结构 Linux下一个进程在内存里有三部份的数据,就是“数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操...
Linux 守护进程的编程方法
守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同Unix环境下守护进程的编程规则并不一致。这需要读者注重,照搬某些书上的规则(非凡是BSD4.3和低版本的System V)到Linux会出现错误的。下面...
嵌入式领域linux作为实时操作系统的缺点
1.任务调度的缺点Linux最初的设计预想是设计一个通用的操作系统内核,尽量缩短系统的平均响应时间,在单位时间内位尽可能多的用户请求提供服务;在设计上并没有太考虑实时性的需要,而是在分时操作系统基础上发展而来,linux内...
深度解析:清理烂代码
猜猜看怎么了!你正”继承“(接收)了一堆混乱的旧代码。恭喜你!现在都是你的了。混乱的代码可能来自任何地方。中间件,网络,可能来自你自己的公司。你知道在一个角落里有一个家伙,没有人过去管他在做什么。猜猜看他...
关于程序员的59条搞笑但却真实无比的编程语录
下面的这59条语录虽然很搞笑,但却真实无比。只有程序员才能理解这些编程语句里的真正内涵。闲言少叙,开始吧…程序员编程语录1. 一个好的程序员是那种过单行线马路都要往两边看的人。(Doug Linder)2. 程序有问题...
Linux系统下烧录单片机
首先,说一下我的硬件和软件情况。硬件:一台笔记本、 一个51单片机开发板(这个在网上有很多卖,也就150左右的价格)。单片机芯片有两块 :一块是Atmel的AT89S52, 另一块是STC的STC89C52RC。USB转串口线一根(串口通信和STC下载用)...
编写Wu-ftp漏洞扫描器
因为我的工作平台是linux,所以扫描程序丰富程度比起windows下的逊多了。看着那些简单操作的软件,口水都流下来了(太夸张了!@~!#@!#)。所以,我只好自己动手写了一个扫描匿名ftp服务器的扫描器,是一个多线程的程序(不过扫描部...
Linux下的多进程编程初步
1 引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成...
带参数的宏定义理解篇
带参数的宏定义的一般形式如下: #define 宏名(参数表) 宏体单看“宏名(参数表)”这个部分就类似于一个“简写”的函数声明,之所以说是“简写”,那是因为,函数声明时,不管是函数名,还是参数名,都会...
用gdb调试GCC程序
命令上键入 gdb 并按回车键就可以运行 gdb 了, 假如一切正常的话, gdb 将被启动并且你将在屏幕上看到类似的内容:GDB is free software and you are welcome to distribute copies of itunder certain conditions; ty...
关于Linux下编写和编译程序的几个问题
Linux下怎样编译程序?大多数Linux程序都是由C语言编写的并由GNU C编译而成。现在GCC是各种发行套件的一部分。有关最新GCC编译器的版本、文章和补丁请看ftp://ftp.gnu.org/pub/gnu/。由C++编写的程序必须由GNU C++编译,GN...
Linux Find 命令精通指南
Linuxfind命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个。它很难,因为它的语法与其他 Linux 命令的标准语法不同。但是,它很强大,因为它允许您按文件名、文件类型、用户甚至是时间戳查找文件。使用find命令,...
Linux中环境变量文件及配置
一、环境变量文件介绍1.系统级:(1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。/etc/bash.bashrc:系统级的bashrc文件...
求平均值的简捷方法(转)
首先说明,这是前人所推荐的求平均值的方法,只是经过我的一点点加工整理这里开头先说一个重要的概念,在二进制数值表示方法中,一个无限长的二进制数顺序向左移动一位就是原值乘以二,而如果二进制数顺序向右移一位就是原值除...
你真的会socket编程吗
然后和大家在会上讨论了才发现,其实大家都不会socket编程。上网一搜“socket编程”出现的大多就两个代码程序,一个服务器端用来接收N个字节,一个客户端用来连接服务器端并且发送N个字节。想必大多数人都是这么...
在Keil C的调试状态下的一些操作
在Keil C的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置?答:在调试状态下,点击Peripherals菜单下的不同外设选项命令,就会显示或隐藏对应外设的观察窗口。如显示定时器0窗口,点击Peripherals菜单下的Ti...
嵌入式Linux驱动开发之helloword心得
大家兴致勃勃的来到了学校,结果一切想象和自己的设想并不一样。想象中的各种智能般梦幻的场景变成了真实的高数/电路/模电等等诸如此类!不知道这个世界什么时候变得如此的浮躁,当大家的一段时间的努力看不到结果的时候就...
嵌入式linux应用程序移植方法总结
嵌入式linux应用程序移植的步骤包括:1、准备好交叉编译环境在安装有Linux操作系统的PC上安装对于平台的交叉编译器,并将交叉编译器加到环境变量中,如export PATH=$PATH:/opt /toolchain/rsdk-1.3.6-5281-EB-2.6.30-0.9.3...
【笔记】keil使用技巧
1.编译告警信息提示 :**********: warning: #1295-D: Deprecated declaration ********************** - give arg types意思是:弃用的声明,改方法:经检查是函数的参数为空时,没有加void,这是一种老式用法,所以编译器给出了...
51单片机中使用ucos ii的优缺点(转)
引言早在20世纪60年代,就已经有人开始研究和开发嵌入式操作系统。但直到最近,它才在国内被越来越多的提及,在通信、电子、自动化等需要实时处理的领域所曰益显现的重要性吸引了人们越来越多的注意力。但是,人们所谈论的往...
编译内核模块出现error: negative width in bit-field
/***********************************************文 件 名:hello.c*文件描述:给模块传参*版 本 号:0.1*修改记录:**********************************************/#include #include MODULE_LICENSE...
ubuntu profile environment bashrc 添加环境变量
/etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。~/.profile :在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的...
Ubuntu下的deb包制作详解
制作原理:打包:将QT制作的源程序(没有编译的)用debian压缩打包(这里是用脚本对源程序再编译)安装:将deb包中的源程序解压(默认解压到根目录)到规定系统文件中并编译(postinst脚本)卸载:将解压的所有文件删除(postrm脚本)例子:1.新...
QuartusII编译与仿真之warning大解析
下面是收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,1.Found clock-sensitive change during activeclockedge at time on register ""原因:vector sourcefile中时钟...
linux下使用dnw烧写及其出现问题的解答
第一种需要加载驱动,后面两种需要安装libusb-dev.其中第二种的烧写速度很快,我都能听到电流声.但是也很不稳定.经常出现的提示是:"usb_bulk_write failed: Resource temporarily unavailable"从提示的信息来看是烧...
uboot源码 start.S文件详解
#include /*在文件 /include */ #include /*在文件 /include/linux *//**************************************************************************** Jump vector table as in table 3.1 in [1]...
Keil MDK下如何设置非零初始化变量
在给出方法之前,先来了解一下代码和数据的存放规则、属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢。什么是初始化数据变量,什么又是非初始化数据变量?(因为我的文字描述不一定准确,所以喜欢举一些例子来...
RealView编译器常用特有功能
一. 关键字和运算符1.__align(n):指示编译器在n字节边界上对齐变量。对于局部变量,n值可为 1、2、4 或 8。对于全局变量,n可以具有最大为 2 的 0x80000000 次幂的任何值。__align关键字紧靠变量名称前面放置。注意事项:只...
那年曾让我哭笑不得抓狂的C语言
1.关于+=以及-= 这是两个运算符,但你否有过这种经历:1. int temp; 2. char i 3. for(i=0;i<MAX;i++) 4. { 5. ... 6. temp=+2; //这里本意是每次循环,temp都自增2,但是却将'+='写成了'=+',按照这种写法,每次循环...
keil MDK编译器警告和错误详解
工作后从单片机转成ARM,刚开始用ADS1.2编译器,用了一段时间,因为我接手的项目的老程序正是用ADS编译的,部门也大都在用.在学单片机的时候用的是keil c51编译器,ads和这个编译器在易用性上真是无法比较.后来渐渐知道ke...
μC/OS-II任务,信号量、邮箱、队列及其区别
一:UCOS是一种抢占式的多任务操作系统,如果最高优先级的任务不主动放弃CPU的使用的 话,其他任务是无法运行的,通常情况下,高优先级的任务在使用完CPU或其他资源后都要主动放弃,可以通过延时函数或者时等待一些信号量之类的...
uClinux设备驱动程序的设计与编写
1设备驱动程序的一般编写步骤(1) 确定设备的主设备号(2) 填充static struct file_operation这样的结构(3) 定义一个类似__init mydriver_init(void)这样的注册函数,大体如下:int __init mydriver_init(void){int rc;rc = regi...
以另一种位图的思想来解决一道OJ题目
题目:输入一个数组,数组有int类型整数若干,若有其中一个是出现一次或者两次,其他数字都是出现3次,要求在时间复杂度在O(N)上限里求出那个数字。解法一生搬硬套位图的思想,既然最多出现3次,那么我用两个bit位来存储一个数出现...
函数参数的传递问题(指针的指针)
程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{s=(char *) malloc(100);}void main(){char *p=NULL;myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?if(p) free(p);}程序2:void myMalloc(char ...
ModelSim SE仿真Altera库的常见仿真错误问题合集
1. modelsim怎么调用altera的库仿真啊?(megafunctions)以前有个帖子说把quartus安装目录下的sim文件夹里面的文件编译进modelsim里面就可以了,可是sim文件夹里面我要的那个函数不是.v文件啊,还有他里面的一些.vhd文件怎...
说说GCC与GDB那些事
一、gccgcc 是GNU 的C 和C++ 编译器,它是Linux 中最重要的软件开发工具。实际上,gcc 能够编译三种语言:C、C++ 和Object C(C 语言的一种面向对象扩展)。利用gcc 命令可同时编译并连接C 和C++ 源程序。汇编语言的编译器为as...
有符号数和无符号数的转换问题
我编写的函数如下://16bit数据高低位互换程序int16 rearrange16(int16 Data){int16 temp;temp = (Data&0x00ff)8);return temp;}后来发现一个问题:送出来的数据都没有负数,正常情况下是正负都有的,经过调试发现了问题所在...
iptables基础
iptables是Linux上常用的防火墙软件,iptables的安装、清除iptables规则、iptables只开放指定端口、iptables屏蔽指定ip、ip段及解封、删除已添加的iptables规则等iptables的基本应用.1、安装iptables防火墙如果没有安...
Linux查看CPU/内存/网卡/操作系统信息
Linux查看CPU/内存/网卡/操作系统信息测试机器的硬件信息:查看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz(看到有8个逻辑CPU, 也知道了CPU型号)# cat /pro...
怎样让C51 与proteus互联?
proteus 的帮助文件里说,想要实现keil与proteus互联,要做以下几步:1.设置TCP/IP协议(不清楚)2.copy VDM51.DLL 到 \C51\BIN3.编辑C51 里tools.ini文件,加入:TDRV1=BIN\VDM51.DLL("PROTEUS VSM MONITOR 51 DRIVER)...
Proteus软件功能及应用概述
它具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的...