嵌入式wince基础知识

  因项目需要,用到手持设备的开发,手持设备搭载的是wince系统,之前多多少少接触过嵌入式编程,一直以为自己的处女开发是在Linux,没想到还是没逃出微软的“魔掌”,不开心归不开心,项目还得继续,先学习嵌入式wince的基本知识吧,为以后的开发打好基础。

什么是嵌入式系统

  我现在觉得有些概念经过一段时间的沉淀,进进出出大脑多次,就能体会到一点点的不一样的味道,就像嵌入式系统,之前看一些定义,一点感觉都没有,理解不能,囫囵吞枣的感觉不好,现在有一些时间了,也接触过几个小项目,慢慢的就觉得嵌入式系统就是针对通用系统(PC)提出的针对特定应用而存在的概念,这些系统都突出某些功能,而对其他功能没有需求,甚至根本就不需要,比如我的电脑,通用型的,几乎各个功能模块它都有,显示,键盘,办公软件,等等面向的是大众人群,相对的嵌入式可能就只注重莫一方面的功能,如只注重声音播放(MP3),只需要通信(功能机)等等,所以在mp3里面根本就不需要显卡啊,在功能机上就根本不要网卡啊,这也是可裁剪的官方用词吧。

  嵌入式系统分为软件和硬件部门,两个部分都是可裁剪的,硬件可以定制,同样软件也是可以定制,嵌入式操作系统亦是,比如不需要某个module。wince是嵌入式操作系统的一种,另外一种是linux,自己无知,肯定还有其他的,就知道这两个。wince裁剪一下可以出来很多知名的其他系统,但都是变种,不能脱离嵌入式系统的概念,比如windows phone windowsxpe等

嵌入式系统开发

  现在来看,开发分软硬两个大的方向,因为都是可裁剪的,根据功能选择或者设计合适的硬件算是一个方向,嵌入式软件的开发又分为驱动开发和应用开发两个方向,驱动开发向下面向硬件,因为硬件是由厂家定制的,所以只有有相应的驱动,别人才可以使用,向上提供给应用编程接口,方面应用程序使用系统硬件(一般应该是操作系统调用);应用开发向下面向API,直接调用驱动程序或者通过操作系统简接调用完成IO,向上面向服务,提供具体的功能,如我项目里面要用到的串口服务程序。

  驱动开发,挺难的,如果设计到操作系统调用,一般就是这样,直接调用的应该叫固件吧,那还必须对操作系统内核有相当深的了解,必须使用内核api和内核调试手段去处理驱动程序,所以更多的情况是应用开发,自己虽然一直向往做一个驱动开发工程师,但是万丈高楼平地起,先了解嵌入式系统才是王道。做嵌入式应用开发就涉及到一个“交叉编译”的概念

交叉编译  

  是指在一个平台上开发另一个平台上运行的程序,包括内核和应用程序,因为不同的平台使用的硬件架构和软件环境都不一样,所以在交叉编译的过程中重要的一环应该是编译链接成目标平台的可执行程序,也就是编译器是关键,之前接触到编译器的概念,知道编译过程的中间代码生成,优化,目标代码生成都是与特定平台相关的,所以在嵌入式软件编写时,如果使用的是高级语言编写,涉及到的标准库或者函数时差别不大,只是应该注意特定平台的库调用,如wince sdk,这也就是不能跨平台的限制所在。当可执行程序生成时,编译器会根据目标平台的指令集(也就是系统架构)生成合适的代码,即平台的指令集才是编译时候的区别所在,生成的代码自然也就只能在该平台下运行。

根据上面的概念,在进行嵌入式应用软件开发时,必须要有的准备工作或者说工具有交叉编译器,目标平台的库,代码编辑器,嵌入式设备的连接工具,其中连接工具用来读取或者下载我们编译好的程序到目标平台上。这些工具的,交叉编译环境的搭建也是不少的知识点在里面,网上各类的博客、文章记录的重点也是在这个方面,下面的工作就是实际搭建一个这样的环境,不然没有办法进行项目开发啊,祝顺利……

时间: 2024-10-12 00:06:33

嵌入式wince基础知识的相关文章

嵌入式Linux基础知识

一.构建嵌入式开发环境 1.编译bootloader并烧写到板子中---uboot, 可以自己定制bootloader and logo 2.编译file system 并烧写--内嵌APP 3.编译linux kernel----定制drivers and logo 4.编译APP 5.编译file system 备份---内嵌APP 6.安装交叉编译工具 7.安装调试工具 二.嵌入式编程基础知识 一般的c/c++文件要变成可执行文件需要经过预处理.编译.汇编.和连接等4个步骤 1)预处理 以

嵌入式Linux基础知识0(什么是真正的实时操作系统--硬实时 软实时)

需求说明:IPC项目需要Linux系统,知识储备 来自:http://blog.csdn.net/zhourui1982/article/details/5282361 阅读精华整理: 1.根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于V

嵌入式中烧写程序的基础知识有哪些

在嵌入式的基础知识学习中,烧写程序是必备的知识点之一,需要把写的程序代码烧写到单片机上,在单片机上检验写的程序代码是否正确,是否能够正常运行,下面我们来学习下什么是烧写和固件.常见的几种烧写方式.三种编程方式的区别. 简单整理下固件.烧写的定义以及烧写过程的几种方式. 一.什么是烧写(下载)和固件 嵌入式系统需要预先将程序写入ROM/FLASH中,在启动时载入运行这些程序,将已经生成的程序写入ROM/FLASH的过程叫做烧写.这样固化在存储介质上的文件叫固件(firmware).那么烧写即为更新

【分享】4412开发板-嵌入式Linux开发需要掌握的基础知识和技能

本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器 2.Shell 编程基础

嵌入式基础教程之嵌入式系统的知识体系

嵌入式系统的应用范围可以粗略分为两大类:电子系统的智能化(工业 控制.现代农业.家用电器.汽车电子.测控系统.数据采集等),计算机应用的延伸(MP3.手机.通信.网络.计算机外围设备等).从这些应用可以看出, 要完成一个以MCU为核心的嵌入式系统应用产品设计,需要硬件.软件及行业领域相关知识.硬件主要有MCU的硬件最小系统.输入/输出外围电路.人机接口设计.软件设计有固化软件的设计,也可能含PC机软件的设计.行业知识需要通过协作.交流与总结获得. 概括地说,学习以MCU为核心的嵌入式系统,需要以

【RL-TCPnet网络教程】第2章 嵌入式网络协议栈基础知识

第2章        嵌入式网络协议栈基础知识 本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议. 基础知识整理自百度百科,wiki百科等. 2.1   初学者重要提示 2.2   TCP/IP协议栈简介 2.3   TCP/IP参考模型 2.4   OSI参考模型 2.5   RL-TCPnet和参考模型的对应关系 2.6   网络协议收录文件RFC 2.7   以太网和IEEE 802.3 2.8   网线相关知识 2.9   总

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def

〖前端开发〗HTML/CSS基础知识学习笔记

经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> <body>...</body> </html> html是根标签 head定义文档头部,包含: title, script, style, link, meta body是网页主要内容,包含:h1,h2-h6, p, a, img 2. 认识head标签: <head

软考信息安全工程师基础知识考试大纲

1.信息安全基本知识 1.1信息安全概念 1.2信息安全法律法规 1.3信息安全管理基础 1.4信息安全标准化知识 1.5信息安全专业英语 2.计算机网络基础知识 2.1训算机刚络的体系结构 2.2 Internet协议 3.密码学 3.1 密码学的基本概念 3.2 分组密码 3.3序列密码 3.4 Hash函数 3.5 公钥密码体制 3.6  数字签名 3.7 认证 3.8密钥管理 4. 网络安全 4.1 网络安全的基本概念 4.2网络安全威胁 4.3 网络安全防御 4.4 无线网络安全 5.