嵌入式学习
xiaoshengyige
这个作者很懒,什么都没留下…
展开
-
vmware8.0 安装red hat 9.0时遇见的问题和解决方案
主要安装步骤见网上的教程,在此只讨论自己具体安装时遇见的问题。由于问题具有隐蔽性,特此记录。 (1)安装镜像共有3个ISO文件。可以用虚拟光驱加载后安装,也可以直接在vmware中加载镜像。一开始安装时出现加载不上的情况不是这两个差别造成的。 (2)每次加载镜像时一定重新在vmware设置里面把connect选项勾上。不然会出现找不到镜像和加载不上的情况。原创 2011-11-07 22:38:57 · 949 阅读 · 0 评论 -
宏定义相关知识
使用宏定义:很多人在使用宏定义的时候往往忽略了一些问题在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。标准的宏定义:写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个:错误做法:#define MIN(A,B) ( A 正确做法:#define MIN(A,B) ((A)转载 2012-10-07 23:17:40 · 1122 阅读 · 0 评论 -
宏定义的参数为什么会有副作用
《C语言参考手册(原书第5版)》第3章C预处理器,C预处理器是一种简单的宏处理器。从概念上说,它在编译器读取源程序之前对C程序的源文本进行处理。在C的有些实现中,预处理器实际上是一个独立的程序。它读取最初的源文件,并写入到一个新的“经过预处理”的源文件,后者可以作为C编译器的输入。本节为大家介绍宏参数的副作用。AD: 51CTO云计算架构师峰会 抢票进行中!转载 2012-10-07 23:19:06 · 4470 阅读 · 0 评论 -
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
全局变量还是在一个.c文件中定义好,然后另一个要用的话就extern就行了.先这么解决,以后再具体研究。原创 2012-10-09 15:00:12 · 4552 阅读 · 0 评论 -
extern用法
这次主要是探讨外部文件的引用(1) 在多个文件中声明外部变量作用域:如果整个工程由多个文件组成,在一个文件中想引用另外一个文件中已经定义的外部变量时,则只需在引用变量的文件中用extern关键字加以声明即可。可见,其作用域从一个文件扩展到多个文件了。原创 2012-10-09 10:21:12 · 699 阅读 · 0 评论 -
详解PCB设计中地线的干扰与抑制
在PCB设计中,尤其是在高频电路中,经常会遇到由于地线干扰而引起的一些不规律、不正常的现象。本文对地线产生干扰的原因进行分析,详细介绍了地线产生干扰的三种类型,并根据实际应用中的经验提出了解决措施。这些抗干扰方法在实际应用中取得了良好的效果,使一些系统在现场成功运行。 在单片机系统中,PCB(印制电路板)是用来支撑电路元件,并提供电路元件 在PCB设计中,尤其是在高频电路转载 2013-02-27 23:06:09 · 5335 阅读 · 0 评论 -
pcb画板常见问题
最近在画板子,现将常遇到的问题做一记录。规则设置:过孔推荐小标准12mil 线宽:10mil 线间距:最小6mil 推荐10mil遇到unkonwpin之类的错误,删除网络标号和classses布线预览消失或移动元器件时元器件消失,在prefference里打开directx支持,不行就卸载更新下驱动打开。经验:还是横平竖直原创 2013-03-25 17:07:53 · 1184 阅读 · 0 评论 -
pcb布线规则
IC去偶电容的布局要尽量靠近IC的电源管脚,并使之与电源和地之间形成的回路最短。 对于芯片VCC的LAYOUT,原则上先进大电容再进小电容,大C->小C->CPU,效果要好一些。因为小电容的谐振频率要比大电容高,靠近芯片能够使较高频率分量的回流路径较小,按上述顺序即可使回流路径大小与其频率成分高低成反比,这样在满足去耦功能的同时,也会降低电磁辐射。 在高速数字电路转载 2013-03-27 11:09:31 · 1124 阅读 · 0 评论 -
浮点数转换成二进制数
|字号 订阅 因为要参加软考了(当然也只有考试有这种魅力),我得了概浮点数转化为二进制表示这个最难的知识点(个人认为最难)。俺结合大量的从网上收集而来的资料现整理如下,希望对此知识点感兴趣的pfan有所帮助。基础知识:十进制转十六进制;十六进制转二进制;IEEE制定的浮点数表示规则;了解:目前C/C++编译器标准转载 2013-04-11 14:04:14 · 923 阅读 · 0 评论 -
常用数字信号变换总结
数字信号处理中的变换,这里我们所要说的变换(transform)虽然是数学意义上的变换,但跟函数变换是不同的,函数变换是符合一一映射准则的,对于离散数字信号处理(DSP),有许多的变换:傅立叶变换、拉普拉斯变换、Z变换、希尔伯特变换、离散余弦变换等,这些都扩展了函数变换的定义,允许输入和输出有多种的值,简单地说变换就是把一堆的数据变成另一堆的数据的方法。 傅里叶变换:是一种特殊的积原创 2013-04-15 10:40:22 · 2581 阅读 · 0 评论 -
功放相关概念
放大器中关于带宽和增益带宽等的主要指标:开环带宽:开环带宽定义为,将一个恒幅正弦小信号输入到运放的输入端,从运放的输出端测得开环电压增益从运放的直流增益下降3db(或是相当于运放的直流增益的0.707)所对应的信号频率。这用于很小信号处理。单位增益带宽GB:单位增益带宽定义为,运放的闭环增益为1倍条件下,将一个恒幅正弦小信号输入到运放的输入端,从运放的输出端测得闭环电压增益下降3db(转载 2013-05-21 08:51:38 · 1274 阅读 · 0 评论 -
嵌入式软件工程师经典笔试题
> 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因转载 2013-09-22 14:17:44 · 42972 阅读 · 7 评论 -
ADC动态仿真中输入信号频率与采样频率的关系
本帖最后由 duke2050 于 2012-7-1 11:56 编辑在做ADC的动态特性仿真时,输入频率与采样频率的关系应如何确定?看到一些资料上面说fin=fs*M/N,其中,fin为输入信号频率,fs为采样频率,M为奇数或者质数,N=2^n。取M=5:1024个点在5个周期内采完,每个信号周期采到204.8个点。300KHz的采样频率对300K/204.8=1.46转载 2013-10-08 14:30:07 · 9784 阅读 · 0 评论 -
C8051F与80C51系列单片机的初始化比较
熟悉MCS—51系列单片机的工程技术人员可以很容易地掌握C8051Fxxx的应用技术并进行软件移植。但不能将8051的程序直接应用于C8051F单片机中,因为这两种系列的单片机内部资源存在较大的差异,因此,完全照搬、移植是行不通的,必须经过“改良”(主要是初始化控制字的改写)才能正确运行。本文以C8051Fxxx系列单片机中资源最丰富、功能最多、运算速度最快(达到100MIPS)的C8051F12转载 2012-08-01 16:48:54 · 1578 阅读 · 0 评论 -
C8051F学习笔记3:优先权交叉开关译码器
数字和模拟资源可以通过25个I/O引脚(C8051F320)每个端口引脚都可以被定义为通用I/O(GPIO)或模拟输入。P0.0 ~ P2.3可以被分配给内部数字资源特点: 所有端口I/O都耐5V电压。 端口I/O单元可以被配置为漏极开路或推挽方式。 端口I/O初始化 端口 I/O 初始化包括以下步骤:1. 用端口输入方式寄存器(PnMDIN)选择所有端口引转载 2012-08-01 16:26:46 · 8833 阅读 · 3 评论 -
讲讲volatile的作用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic转载 2012-07-16 08:46:15 · 866 阅读 · 0 评论 -
static、extern、volatile的用法
static的用法: 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。 用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个转载 2012-02-07 09:45:48 · 556 阅读 · 0 评论 -
STM32 (Cortex-M3) 中NVIC(嵌套向量中断控制)的理解
一、STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。1. 何为占先式优先级(pre-emption priority) 高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。转载 2012-02-08 10:54:32 · 955 阅读 · 1 评论 -
STM32中何时需要开启AFIO?
调用中断和进行重映射时打开AFIO.原创 2012-02-09 18:14:16 · 2022 阅读 · 3 评论 -
c语言的I/O重定向的能力
1. C语言是没有I/O的语言 C语言本身就是没有I/O能力的语言,是依靠函数模块来完成的。如printf()就是一个I/O函数,在编译时,编译器并不编译printf()函数,而把他留在链接(link)阶段由链接器来处理。这样做的优点是: 提高了C编译器的可移植性。因为I/O与计算机的硬件关系密切,如果C语言本身具备I/O能力,那么在不同的计算机上,编译器就转载 2012-02-09 18:58:14 · 1013 阅读 · 0 评论 -
ARM 程序设计优化策略与技术
程序优化是指软件编程结束后,利用软件开发工具对程序进行调整和改进,让程序充分利用资源, 提高运行效率, 缩减代码尺寸的过程。按照优化的侧重点不同, 程序优化可分为运行速度优化和代码尺寸优化。运行速度优化是指在充分掌握软硬件特性的基础上, 通过应用程序结构调整等手段来降低完成指定任务所需执行的指令数。在同一个处理器上, 经过速度优化的程序比未经优化的程序在完成指定任务时所需的时间更短,即前者比后转载 2012-03-29 16:03:52 · 555 阅读 · 0 评论 -
zigbee学习笔记--电源管理OSAL机制的ZigBee低功耗管理(CC2530)
OSAL_PwrMgr.C OSAL电源管理的API C文件hal_sleep.c 底层的电源管理文件 电源管理结构体typedef struct{ uint16 pwrmgr_task_state; //任务状态 uint16 pwrmgr_next_timeout;转载 2012-05-28 16:48:29 · 7394 阅读 · 2 评论 -
zigbee学习笔记---Channel、PANID、发射功率及其它参数
现对z-stack里几个网络参数的设置以及如何获取总结一下。信道配置:Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个20Kb/s信道,915MHz频段中定义了10个40Kb/s信道,信道间隔为2MHz,2.4GHz频段上定义了16个250Kb/s信道,信道间隔为5MHz.信道编号中心频率/MHz转载 2012-05-17 17:01:18 · 18248 阅读 · 1 评论 -
zigbee学习笔记---入门
首先,本人是一名在读本科生,因为要参加本年度的物联网比赛,故需要掌握一定的Z-Stack知识。一周前本人对Z-Stack了解是完全空白,当时连什么是ZigBee都没听说过,不过本人是本校的物理实验室的常驻人员,有一定的单片机基础。经过近一周的学习现在对Z-Stack也只能说是刚刚入门,把自己的学习笔记分享出来,也算给广大菜鸟级入门童鞋一些参考的东西吧。由于本人本来是做海洋类开发的,兼顾单片机嵌入式转载 2012-05-17 17:22:33 · 17836 阅读 · 5 评论 -
zigbee学习笔记--------小概念
TaskID: 这个是任务id是,os负责分配的也就是对一个事件作一个唯一的编码,在每一个任务的初始化函数中,必须完成的功能是要得到设置任务的任务ID。他就相当于一个任务的标识,这样才能区分运行过程中不同任务中的不同事件。我是这么认为的,ID 说白了就是给该任务取了各名字,就向人名字一样,区分不同的人,就是一个代号。人名可以重复,重复了有时候叫起来就容易混淆;所以才程序中为了避免这转载 2012-05-17 16:49:28 · 2510 阅读 · 0 评论 -
zigbee学习笔记-----zstack中发现PANID冲突的解决办法。
在同一空间如果同时存在多个zigbee网络,可能出现的一个问题就是网络ID(PANID)冲突,这问题会导致zigbee网络出现混乱。在zigbee2004和zigbee2006这个问题没有解决办法,到了zigbee 2007协议有了描述,不过各厂家的解决不太一样。就ZSTACK来说,引入了一个叫网络管理节点的概念,通过激活网络管理节点,可以解决PANID冲突的问题。可以按照转载 2012-05-17 17:03:59 · 7792 阅读 · 0 评论 -
PCB抗干扰设计
一、电源线的设计 1、选择合适的电源 2、尽量加宽电源线 3、保证电源线、地线走向和与数据传输方向一致 4、使用干扰元器件(磁珠、电源滤波器) 5、电源入口添加去耦电容二、地线的设计 1、模拟地和数字地分开 2、低频尽量采用单点接地,高频多点接地 3、尽量加宽地线,宽度在2~3毫米 4、将敏感电转载 2012-05-17 20:21:52 · 1735 阅读 · 1 评论 -
left side of asn-op not an lvalue错误解决方法
最近在用keil 调ant的板子常常出现left side of asn-op not an lvalue错误。原来是由于变量的声明没有放到最开始导致。这么低级的错误都犯,特此记录。原创 2012-06-22 09:34:00 · 42477 阅读 · 3 评论 -
转载九贱的『我理解的逻辑地址、线性地址、物理地址和虚拟地址』
过年了,发个年终总结贴,只是个人理解,不包正确哈。本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机转载 2013-12-11 10:06:07 · 842 阅读 · 0 评论