以前找到并解决的问题


1.     AD转换参考电压是怎么回事


2009-03-04 10:32这分不又归我了|分类:汇编语言| 浏览5199


2009-03-04 12:06提问者采纳


 


ad转换时的参考电压是内部T行网络的标准电压,参考电压可以认为是你的最高上限电压(不超过电源电压),当信号电压较低时,可以降低参考电压来提高分辨率。改变参考电压后,同样二进制表示的电压值就会不一样,最大的二进制(全1)表示的就是你的参考电压,在计算实际电压时,就需要将参考电压考虑进去。参考电压的稳定性对你的系统性能有很大的影响。


一般来说应该是芯片的参考电压,如5V的参考,8位的AD,共256个数字量,则分辨率为5/256=19.53MV


 


 


2.    同是ARM公司推出的cortex-M3内核,不同的厂商如freescale,NXP等基于该内核生产出的芯片区别大么?


2012-03-15 08:43提问者悬赏:50


他们的外设都不一样吧?我现在在公司学freescale-k40(基于cortex-M4内核)芯片,但是没什么中文资料。想搞个开发板玩玩,网上有STM32的基于cortex-M3内核的,但不知道他们用起来区别大不大。如果大的话买开发板就没意义了!

望诸位给点建议,越详细越好,万分感谢!

freescale-k40STM32用起来编程语言会有一定的差别,厂家提供的固件库会不同,内核相同只是cpu处理器的原理结构相同,但外设还是每个厂家自己设计开发的,比如ad,外部触发中断,DMA等等,如果现在是学习还是用STM32的板子比较好,由于用的人比较多遇到问题就比较容易解决。以后工作要是用其他厂家的片子再去临时学就可以了,几周就能搞定。关键是学习编程思想,提高解决问题的能力。
 

 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 

 


  1. 1206封装的电阻比0603封装的面积大啊,而且这种封装的供货相对稳定啊。
    但相对来说,0805的封装要最常用,最容易买到货。(在大规模生产产品的之前需要考虑电子元器件是否常用的,是否容易买的。否则当你用到一个不好买的元器件,万一哪天客户急着要订你的产品,而正好其中的这个元器件市场上没货了而不能即是投入生产,你就哭去吧


 


  1. led2On();led2Off();的位置,保证发一次亮一次



 


 


  1. buffer是什么


buffer:就是缓冲区。

void main()
{
   
int a=10,b=5,c;
   
c=a;
   
a=b;
   
b=c;
   
printf("%d%d",a,b);
}
这个程序里面c就是一个Buffer,用于暂时存储用户数据。

内存就是系统分配的一块存储区域,想存什么都可以。


 


 


6.    typedef enumtypedef struct分别是什么意思


2007-10-12 20:01friyer|分类:C/C++| 浏览24417


比如:

typedef enum

{ DWI_Nothing,

  DWI_2x2Icon,

  DWI_Icon,

  DWI_Text,

  DWI_FullText,

  DWI_CenterText,

  DWI_FullCenterText,

  DWI_None

} DrawMenuItemType;

是表示什么?

typedef struct

{ BYTE Flags;

  BYTE XPos, YPos;

  fpGetValue GetValue;

} NumberType;

是什么意思?

谢谢


2007-10-12 20:18提问者采纳


typedef enum表示定义了一个枚举型数据结构,你可以用题目中的DrawMenuItemType去定义变量,这个变量的取值就是

DWI_Nothing, 

DWI_2x2Icon, 

DWI_Icon, 

DWI_Text, 

DWI_FullText, 

DWI_CenterText, 

DWI_FullCenterText, 

DWI_None中的一个,这些你都可以自己取值。默认为零,其后面的依次加1。如果你给DWI_Nothing取其它值,相应的它后面的没有显示赋值的就要在这个基础上依次加1,直到遇到显示赋值的为止。



typedef struct也是定义了一种数据结构,这个数据结构包含多个数据项,如题,你可以利用NumberType去定义变量。


 


7.    如何自学嵌入式?推荐一些书籍吧。


2013-06-14 15:28happygirl20052|分类:嵌入式| 浏览50


C语言是嵌入式最重要的基础知识,主要把C语言学好,但是掌握了它并不代表你的基础已经很好了,嵌入式学习相关的入门基础主要是这些:

一是程序设计的基础,例如:基本的编程语言基础,至少对数据类型、程序的结构及流程控制等最基本的内容要相当清楚,所以建议恶补一下C语言,推荐谭浩强C语言程序设计,好好看一下,呵呵!另外有不少同学都问到数据结构的基础,我一直认为数据结和算法的学习是帮助形成程序设计逻辑思维的很好训练方式,对于程序员的长期专业素养的提高一定有好处,所以建议即使已经在嵌入式行业中工作之后也应该多补充一些相关的知识。许多在学校没有学过数据结构的同学往往认为这部分非常枯燥、难学。而实际上如果你能明白研究计算机存储和数据组织方式的意义,就一定能够充分体会到数据结构的价值和魅力。一旦兴趣有了,一切就会迎刃而解,呵呵!

二是操作系统工作原理,这部分往往是非计算机专业的同学在学校时没有接触过的。而由于嵌入式软件设计相关的多任务环境、模块间的同步与通信协同、驱动设计等往往都需要有对操作系统工作机制的了解和掌握作为基础,因此建议没有系统学习过的同学,找一本相关的操作系统工作原理书籍认真看一下(不用特厚、特专业、特内核的,先以普及知识为主,呵呵!)。

三是基本的硬件基础,由于嵌入式Linux开发往往是ARM+Linux路线,所以为了能够在后续学习过程中很好地掌握主流嵌入式微处理器的结构与原理(例如:ARM9),就需要对硬件工作原理有初步的了解和掌握,建议看一下诸如计算机组成原理体系结构等相关的专业书籍。



要深入学习你可以尝试以下路线:

1 C语言是所有编程语言中的强者,单片机DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。

推荐书籍:《The C Programming Language 这本经典的教材是老外写的,也有中译版本。

2 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫进程”“线程”“系统调度等等基本问题搞清楚。

3Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。

推荐书籍:《UNIX环境高级编程》(第2版)

4 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。

5 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。

6 驱动开发

linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。

linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。



以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译makefileshell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!

至于后面的几个问题,我的回答是ARMLinuxC语言,推荐你参考华清远见近期推出的2009-2010中国嵌入式开发从业人员调查报告,上面有很详细的解释和说明。

华清远见的嵌入式专业教材比较专业,也很出名,高校图书馆以及外面书店都有卖,你可以去网上搜一下,买本看看,华清远见的网站和技术论坛上面也有很多嵌入式学习资料和视频可以下载,而且更新的速度也很快,LZ没事可以去转转,相信对你会有帮助


 


自学嵌入式的流程是什么.要看哪些书籍..


2013-02-08 17:44战争_召唤|分类:嵌入式| 浏览257


1基础知识是什么

2好就业的方向是哪个.

3有前景的方向是哪个.

4要看哪些书籍.


分享到:


2013-02-19 16:11网友采纳


1、基础知识: 

目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优 势。 

科目:数字电路、计算机组成原理、嵌入式微处理器结构。 

汇编语言、C/C++、编译原理、离散数学。 

数据结构和算法、操作系统、软件工程、网络、数据库。 

方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。thec++programminglanguage(一直没时间读)、数据结构-C2 

2、学习linux 
 


目的:深入掌握linux系统。 

      方法:使用linux—linxu系统编程开发〉驱动开发和分析linux内核。先看深, 那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0. 11版,适合学习。最后深入代码。

主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。 

3、学习嵌入式linux 

目的:掌握嵌入式处理器其及系统. 

方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86

      2嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux 

      3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友) 

      主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。 

4、深入学习: 

      A、数字图像压缩技术:主要是应掌握MPEGmp3等编解码算法和技术。

      B通信协议编程技术TCP/IP协议、802.11BluetoothGPRSGSMCDM A等。

      C、网络与信息安全技术:如加密技术,数字证书CA等。 

      DDSP技术:DigitalSignalProcessDSP处理器通过硬件实现数字信号处理算 法。

      说明:太多细节未说明,可根据实际情况调整。重点在于13,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化, 一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是 有必要的。 

      注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的 程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。 

      不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱 好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要 

做的! 

      技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不 要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要 相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。 

      嵌入式书籍推荐 

      Linux基础 

      1、《LinuxUnixShell编程指南》 

      C语言基础 

      1、《CPrimerPlus5thEdition》【美】StephenPrata

      2、《TheCProgrammingLanguage,2ndEdition》【美】BrianW.KernighanDav 

idM.RithieK&R)着 

      3、《AdvancedProgrammingintheUNIXEnvironment2ndEdition》(APUE 

      4、《嵌入式Linux应用程序开发详解》 

      Linux内核 

      1、《深入理解Linux内核》(第三版) 

      2、《Linux内核源代码情景分析》毛德操胡希明著 

      研发方向 

      1、《UNIXNetworkProgramming》(UNP 

      2、《TCP/IP详解》 

      3、《Linux内核编程》 

      4、《Linux设备驱动开发》(LDD

      5、《Linux高级程序设计》杨宗德著 

      硬件基础 

      1、《ARM体系结构与编程》杜春雷着 

      2S3C2410Datasheet 

      英语基础 

      1、《计算机与通信专业英语》 

      系统教程 

      1、《嵌入式系统――体系结构、编程与设计》 

      2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操胡希明 

 

      3、《BuildingEmbeddedLinuxSystems 

      4、《嵌入式ARM系统原理与实例开发》杨宗德著 

      理论基础 

      1、《算法导论》 

      2、《数据结构(C语言版)》 

      3、《计算机组织与体系结构?性能分析》 

      4、《深入理解计算机系统》【美】RandalE.Bryant DavidO''Hallaron 

      5、《操作系统:精髓与设计原理》 

      6、《编译原理》 

      7、《数据通信与计算机网络》 

      8、《数据压缩原理与应用》 

      C语言书籍推荐 

      1.TheCprogramminglanguageC程序设计语言 

      2.PointersonCC和指针》 

      3.CtrapsandpitfallsC陷阱与缺陷》 

      4.ExpertCLanuage《专家C编程》 

      5.WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCProgr 

ams

      《编程精粹--Microsoft编写优质无错C程序秘诀》 

      6.ProgrammingEmbeddedSystemsinCandC++《嵌入式系统编程》 

      7.C语言嵌入式系统编程** 

      8.《高质量C++/C编程指南》林锐 

      尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。 

这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!!!


 


 


8.   冯诺依曼体系结构与哈弗体系结构的区别


材料一:


哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。


目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9ARM10ARM1151单片机也属于哈佛结构


·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。


目前使用冯·诺伊曼结构的中央处理器和微控制器有很多。除了上面提到的英特尔公司的8086,英特尔公司的其他中央处理器、安谋公司的ARM7MIPS公司的MIPS处理器也采用了冯·诺伊曼结构。


评论:哈佛结构和冯.诺依曼结构都是一种存储器结构。哈佛结构是将指令存储器和数据存储器分开的一种存储器结构;而冯.诺依曼结构将指令存储器和数据存储器合在一起的存储器结构。


材料二:


MCS-51单片机有着嵌入式处理器经典的体系结构,这种体系结构在当前嵌入式处理器的高端ARM系列上仍然在延续,这就是哈佛结构。相对于大名鼎鼎的冯·诺依曼结构,哈佛结构的知名度显然逊色许多,但在嵌入式应用领域,哈佛结构却拥有着绝对的优势。哈佛结构与冯·诺依曼结构的最大区别在于冯·诺依曼结构的计算机采用代码与数据的统一编址,而哈佛结构是独立编址的,代码空间与数据空间完全分开。


在通用计算机系统中,应用软件的多样性使得计算机要不断地变化所执行的代码的内容,并且频繁地对数据与代码占有的存储器进行重新分配,这种情况下,冯·诺依曼结构占有绝对优势,因为统一编址可以最大限度地利用资源,而哈佛结构的计算机若应用于这种情形下则会对存储器资源产生理论上最大可达50%的浪费,这显然是不合理的。


但是在嵌入式应用中,系统要执行的任务相对单一,程序一般是固化在硬件里。当然这时使用冯·诺依曼结构也完全可以,代码区和数据区在编译时一次性分配好了而已,但是其灵活性得不到体现,所以现在大量的单片机也还在沿用冯·诺依曼结构,如TIMSP430系列、FreescaleHCS08系列等。


那是为什么说哈佛结构有优势呢?嵌入式计算机在工作时与通用计算机有着一些区别:嵌入式计算机在工作期间的绝大部分时间是无人值守的,而通用计算机工作期间一般是有人操作的;嵌入式计算机的故障可能会导致灾难性的后果,而通用计算机一般就是死死机,重新启动即可。这两点决定了对嵌入式计算机的一个基本要求:可靠性。


使用冯·诺依曼结构的计算机,程序空间不封闭,期程序空间的数据在运行期理论上可以被修改,此外程序一旦跑飞也有可能运行到数据区。虽然都是一些不常见的特殊情况下,但是看看哈佛结构德计算机在这些情况下是怎样的:基于哈佛结构的处理器入MCS-51,不需要可以对代码段进行写操作的指令,所以不会有代码区被改写的问题;程序只能在封闭的代码区中运行,不可能跑到数据区,这也是跑飞的几率减少并且跑飞后的行为有规律(数据区的数据是不断变化的而代码区是不变的)。


所以,相对于冯·诺依曼结构,哈佛结构更加适合于那些程序固化、任务相对简单的控制系统。


总结


.诺依曼指出:程序只是一种(特殊)的数据,它可以像数据一样被处理,因此可以和数据一起被存储在同一个存储器中——这就是著名的冯.诺依曼原理。注意:数据总线和地址总线共用。


哈佛结构:


哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。与两个存储器相对应的是系统的4条总线:程序的数据总线与地址总线,数据的数据总线与地址总线。这种分离的程序总线和数据总线允许在一个机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,使数据的吞吐率提高了1倍。又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠。CPU首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。


同步定位与地图构建(SLAM)技术为移动机器人或自主载具在未知空间中的导航提供了核心支撑。借助该技术,机器人能够在探索过程中实时构建环境地图确定自身位置。典型的SLAM流程涵盖传感器数据采集、数据处理、状态估计及地图生成等环节,其核心挑战在于有效处理定位与环境建模中的各类不确定性。 Matlab作为工程计算与数据可视化领域广泛应用的数学软件,具备丰富的内置函数与专用工具箱,尤其适用于算法开发与仿真验证。在SLAM研究方面,Matlab可用于模拟传感器输出、实现定位建图算法,进行系统性能评估。其仿真环境能显著降低实验成本,加速算法开发与验证周期。 本次“SLAM-基于Matlab的同步定位与建图仿真实践项目”通过Matlab平台完整再现了SLAM的关键流程,包括数据采集、滤波估计、特征提取、数据关联与地图更新等核心模块。该项目不仅呈现了SLAM技术的实际应用场景,更为机器人导航与自主移动领域的研究人员提供了系统的实践参考。 项目涉及的核心技术要点主要包括:传感器模型(如激光雷达与视觉传感器)的建立与应用、特征匹配与数据关联方法、滤波器设计(如扩展卡尔曼滤波与粒子滤波)、图优化框架(如GTSAM与Ceres Solver)以及路径规划与避障策略。通过项目实践,参与者可深入掌握SLAM算法的实现原理,提升相关算法的设计与调试能力。 该项目同时注重理论向工程实践的转化,为机器人技术领域的学习者提供了宝贵的实操经验。Matlab仿真环境将复杂的技术问题可视化与可操作化,显著降低了学习门槛,提升了学习效率与质量。 实践过程中,学习者将直面SLAM技术在实际应用中遇到的典型问题,包括传感器误差补偿、动态环境下的建图定位挑战以及计算资源优化等。这些问题解决对推动SLAM技术的产业化应用具有重要价值。 SLAM技术在工业自动化、服务机器人、自动驾驶及无人机等领域的应用前景广阔。掌握该项技术不仅有助于提升个人专业能力,也为相关行业的技术发展提供了重要支撑。随着技术进步与应用场景的持续拓展,SLAM技术的重要性将日益凸显。 本实践项目作为综合性学习资源,为机器人技术领域的专业人员提供了深入研习SLAM技术的实践平台。通过Matlab这一高效工具,参与者能够直观理解SLAM的实现过程,掌握关键算法,将理论知识系统应用于实际工程问题解决之中。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
当遇到VMware旧版本无法删除的问题时,可以尝试以下几种方法: ### 使用官方卸载工具 VMware通常会提供专门的卸载程序来帮助用户彻底删除软件。可以前往VMware官方网站,下载对应版本的卸载工具,运行该工具按照提示完成卸载操作。 ### 利用Windows程序和功能 1. 按下“Win + R”组合键,打开“运行”对话框,输入“appwiz.cpl”回车,打开“程序和功能”窗口。 2. 在已安装的程序列表中找到VMware旧版本,右键选择“卸载”,然后按照卸载向导的提示完成操作。 ### 安全模式下卸载 如果在正常模式下无法卸载,可以尝试进入安全模式进行卸载: 1. 重启计算机,在开机过程中不断按下特定按键(如F8,不同电脑可能不同),进入高级启动选项菜单。 2. 选择“安全模式”进入系统。 3. 按照上述“使用Windows程序和功能”的方法进行卸载。 ### 使用第三方卸载工具 可以使用一些第三方卸载软件,如Revo Uninstaller、IObit Uninstaller等,这些工具可以更彻底地删除软件及其残留文件和注册表项。 1. 下载安装第三方卸载工具。 2. 打开工具,在已安装程序列表中找到VMware旧版本,选择卸载。 3. 工具会扫描删除相关残留文件和注册表项。 ### 手动删除 如果以上方法都无法解决问题,可以尝试手动删除,但这需要谨慎操作,以免影响系统稳定性: 1. 停止所有与VMware相关的服务。按下“Win + R”组合键,输入“services.msc”回车,打开“服务”窗口,找到所有以“VMware”开头的服务,右键选择“停止”。 2. 删除VMware的安装目录。通常在“C:\Program Files”或“C:\Program Files (x86)”下找到VMware的安装文件夹,将其删除。 3. 清理注册表。按下“Win + R”组合键,输入“regedit”回车,打开注册表编辑器。在注册表中搜索所有与VMware相关的项,然后将其删除。建议在操作前备份注册表。 ### 示例代码(以Python实现简单的服务停止) ```python import subprocess # 定义要停止的服务名称 services = [ "VMwareAuthorizationService", "VMwareHostd", "VMwareUSBArbitrator" ] # 停止服务 for service in services: try: subprocess.run(f"net stop {service}", shell=True, check=True) print(f"{service} 服务已停止") except subprocess.CalledProcessError as e: print(f"停止 {service} 服务时出错: {e}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值