欢迎来到皮皮网网首页

【gh0st 源码下载】【跟庄买卖公式源码】【源码图鉴如何下载】java arp源码

来源:vlx提取源码 时间:2024-11-25 03:04:06

1.UI设计中标设计的方法有哪些?
2.如何学习嵌入式

java arp源码

UI设计中标设计的方法有哪些?

       UI设计中图标设计的方法有哪些?

       一、轮廓清晰带有渐变的图标

       渐变色也是这两年最热的趋势,它同样出现在图标设计当中。相对微妙的渐变在图标设计当中,增加了视觉的维度和层次,这使得图标拥有了更加立体化的gh0st 源码下载细节,这种设计使得图标本身的高级感更加明显,也恰如其分地增加了整个设计的信息量和丰富度。

       二、色彩明快视觉有趣的图标

       并非所有的图标都必须是单色的,但是太多的色彩挤在一个小图标上的时候,会让整个设计显得混乱不堪。通过非常有限的几种色彩来设计图标,就能够让图标显得足够有趣了,同时,如果这几种色彩也足够明快,互相补充,就更吸引用户了。这一趋势在年也显得非常突出。

       三、形同APP ICON的图标

       类似APP ICON一样的图标一直都存在,但是没有像今年这么流行过。使用圆角边框外轮廓,带有彩色背景,中间是几何特征明显的图形和元素,但是并非用作APP的入口,而是运用在网页、APP内等其他的地方。它的流行可能是因为这种样式可以暗示用户,图标背后功能的价值。

       四、笔触粗重线条统一的图标

       这种[粗线条]的单色图标在今年尤其受追捧,线条清晰统一,笔触粗壮,比起常规的线性图标更加厚重,而且拥有一种莫名的萌感。虽然同样只是单色的设计,但是几何感更强,视觉重量更明显,让用户的双眼无法错过。

       五、仍然扁平但更加多变的图标

       扁平化设计仍然没有过时,始终还在流行。扁平化的图标在视觉上相对而言更加简约,可以被设计地更加多变,跟庄买卖公式源码也可以同各种不同的设计风格兼容,和不同的元素搭配起来使用,因此也同样收到设计师和用户的青睐。

       六、表情符号化的图标

       表情符号,Emoji几乎已经成为一种独立的语言,而图标设计也同样受到了表情符号的影响,各种可供识别的视觉元素,尤其是各种角色头像,都被制作成为图标,在不同的场合使用。表情符号化的图标还有哪些更有趣的用法,还有待探究。

       七、永远经典的线性图标

       线性图标几乎可以用在任何场合,APP,网页,海报,说它们是不老的经典一点都不为过。线性图标有着良好的可塑性,无论是大是小都可以清晰地传达信息,表明概念。在年,线性图标依然是主流,依然是需求大户,相关的素材也一直都稳定地产出着。

       八、结构简单含义明确的图标

       对于简约设计的追求,一直贯穿着整个年。这一点也同样体现在图标设计上,更加图形化,更加简约的形体,但是保持清晰感知度的图标设计在今年大量的涌现。就像上面的这组图标,美食的轮廓通过简单的形体来塑造,细节则使用相同的小圆点和线条来补充,非常巧妙。

求ui设计视频教程百度网盘?

       java教程网网页与UI设计从入门到精通视频教程百度网盘免费资源在线学习  

       链接:

       提取码: 3zdp  

       java教程网网页与UI设计从入门到精通视频教程 网页设计教程--网页设计流程-传智播客设计学院-网页设计视频教程.zip 网页设计教程--网页设计流程-传智播客设计学院-网页设计视频教程.zip 网页设计教程-色彩基础-传智播客设计学院-网页设计视频教程.zip 网页设计教程-网页设计基础-传智播客设计学院-网页设计视频教程.zip UI设计视频教程--XBOX播放器制作-传智播客设计学院-UI设计视频教程.zip UI设计视频教程--XBOX播放器-传智播客设计学院-UI设计视频教程.zip UI设计视频教程-矢量图标-传智播客设计学院-UI设计视频教程.zip

       Photoshop视频教程-(定义画笔、颜色减淡)-传智播客设计学院-PS视频教程.zip Photoshop视频教程-(形状、钢笔、鼠绘基础)-传智播客设计学院-PS视频教程.zip Photoshop视频教程-(渐变、高级自由变换)--传智播客设计学院-PS视频教程.zip Photoshop视频教程-(定义图案、套索抠图)--传智播客设计学院-PS视频教程.zip Photoshop视频教程-(选区、移动、源码图鉴如何下载变形)-传智播客设计学院-PS视频教程.zip Java学习交流社区 - java源码-java视频教程-尽在JAVA教程网.htm  

ui设计应该怎么学?

       可以自学,建议通过以下几种方式:

       1、学习软件知识

       包括掌握Photoshop、Axure、Illustrator、sketch、蓝湖等常用软件。另外,制作原型,界面,图标制作,素材制作,切图等等相关步骤的软件都需学会。

       软件是是设计师的基础,新手刚入门可以先从这点入手。娴熟的技法,是完美展现设计作品的必备条件,要熟练掌握好。

       2、临摹作品

       对于刚入门的UI设计师来说只要去图库网站找一些素材,借助工具进行修饰即可,其实这只能锻炼你的借鉴能力,当你的技法娴熟到一定程度,就可以尝试临摹。通过临摹,一则用来强化技法层面的能力,二来也能提升初学者的创新能力。

       临摹的内容,可以有两方面选择:一种是系统自带的图标,另一种则是行业牛人的设计作品,捉摸他们的设计风格、思想和细节,都能加深对设计的认识

       3、掌握平面设计理论知识

       包括要掌握构图、排版、色彩和图形的基础理论知识。学习的途径毋庸置疑我们首选从书本获得!

       4、锻炼手绘能力。

       成为一个优秀的UI设计师需要一定的手绘能力,为什么?首先,在纸上的动手能力比在软件上完成较快速,效率有一定提升。

       另一方面,苹果手机源码软件通过手绘,能突出自己创作的与众不同,甚至能够从“乱涂乱画”中得到灵感。没有美术基础的小伙伴也不要太担心,这些后天可以勤加练习弥补的。

UI设计是什么?UI如何系统学习?

       今天小编要跟大家分享的文章是关于UI设计是什么?UI如何系统学习的文章。随着UI技术越来越火,想要学习UI的人也越来越多,相信想要学习UI技术的小伙伴们应该存在这些疑问,下面就来和小编一起看一看这两个问题的回答吧:

       首先,UI设计是什么?

       UI设计,全称UserInterfac,翻译成中文意思叫做用户界面设计。

       UI设计按用户和界面来分可分成四种UI设计。

       分别是移动端UI设计,PC端UI设计,游戏UI设计,以及其它UI设计。

       第一种:移动端UI设计

       移动端UI设计,也就是手机用户,界面指的就是手机界面,也就是说手机上的所有界面都是移动端UI设计。

       比如微信聊天界面,QQ聊天界面,手机桌面,手机上看到的所有图标界面点了后会有反应都可以理解成移动端UI设计。

       第二种:PC端UI设计

       PC端UI设计,也就是电脑用户,界面指的就是电脑上的操作界面。

       像电脑版的QQ,微信,PS等软件和网页的一些按钮图标等。都属于PC端UI设计。

       第三种:游戏UI设计

       游戏UI设计,用户也就是游戏UI用户,界面指的是游戏中的界面,游戏中的场景人物什么的就是不UI了。

       像手游王者荣耀,端游英雄联盟和一些其它游戏中的界面,登录界面、个人装备属性界面也都是属于游戏UI设计。

       第四种:其它UI

       像VR界面、AR界面、ATM界面、建站这些事源码一些智能设备的界面,比如智能电视、车载系统等等,用户较少,但又需要,未来有可能很火,有可能保持现状。

       好咱们讲完了什么是UI设计,再说下UI如何系统学习。下面我们一起来看一看UI如何系统学习吧。

       1.准备篇:电脑手机时间

       电脑:台式机或笔记本,

       配置要求:8G以上内存,I5以上处理器,固态硬盘。

       大约在元左右。

       手机:安卓或苹果,要求近几年出的手机,太老的不行,

       比如小米手机都可以。

       1和2就有点太老了,没有办法更新最新的安卓系统。

       苹果则最最少能用苹果6以上的手机。

       同时性能已经不太支持现在好多大的软件及游戏,

       这对于学习用户体验会有很大的影响,其次就是硬件跟不上,

       比如分辨率,跟不上现在的主流手机,我们自己不经常使用新的手机。

       是很难融入到最新的设计法则里的。

       时间:要求每天最少有2个以上的小时,坚持最少半年,

       如果没有可以挤时间,比如上班族住的地方离公司近点,

       虽然会贵一些房租,但是能省下不少坐车的时间,

       时间就是金钱,学生和其它人员也可以晚睡或学习时间管理的方法,

       相信2个小时的时间是完全可以挤出来的,好这就是咱们的准备阶段,因为没有准备那就只能面对了,生活工作也是如此。

       2.方法篇:视频网站书籍

       视频:大家可以多去MOOC和TED网站,学习一些各大顶尖学校各大牛人的视频,比如时间管理,人际沟通,创意,管理,心理学,等多个领域的课程,这对于我们UI设计的职业发展是非常的有帮助的。

       网站:站酷网UI中国优设网花瓣网

       这4大网站都是非常的不错,无论是小白学员还是已经有从事了UI工作,都可以得到不错的提升。里面有软件技法教程,设计理论教程,这几个网站也是UI设计师,常用到和必须了解的设计网站,让你如鱼得水,快速成长起来。

       书籍:当当网或亚马逊搜索UI设计书籍排行榜前面的几十本都是OK的。

       也可以去下载一些电子版的UI设计书籍进行大量的学习也是OK的,如大家都没有电子版本的书籍下载渠道,这里小传给大家收获整理了一批,有需要的小伙伴,在评论区给我留言或是直接私信我,回复“书籍”获取。

       3.学习篇:大量临摹用心学习

       大量临摹,借助于上面介绍的方法,大量的临摹一些作品,临摹的时候,一定要多想,原作者是怎么画出来的,用于学习技法,同时也要思考原作者为什么这样设计,用于学习理论思维。

       那么要临摹到多少才可以呢,结果就是临摹到可以搞懂作者的所有设计思维和技法就足够了。临摹多了才能出原创,所有人都是如此。

       用心学习,就是学习的时候一心一用,不要做其它事,专心学,不要上课时,玩手机,聊QQ,聊微信,聊天等,要用心做笔记,不要让什么事干扰到你,这样才能高效率的学习。

       以上就是小编今天为大家分享的关于什么是UI设计,UI如何系统的学习的文章,希望本篇文章能够对想要学习UI设计的小伙伴们有所帮助,想要了解更多UI相关知识,记得关注北大青鸟UI培训官网。

UI设计需要学习哪些软件啊?

       我们在学习UI设计的过程当中,需要学什么ui设计软件,需要学习到很多知识,比如软件 Photoshop、illustrator、Ae、Axure、sketch这些都是一名UI设计必需要掌握好的软件。

       学习到这些软件,自学就可以,很多网站都有教程,那么这几款软件在UI设计工作是负责什么的呢?与占的比重是多少?今天来一看究竟!

       Photoshop—UI界面世界设计-%

       illustrator-更多是UI图标设计—5%

       After Effects-交互动效设计-5%

       Axure RP-交互原型图设计-%

       Sketch-交互原型图设计-%

       一、PS CC

       PS是一款图像处理软件,功能很强大,可以做界面设计、可以做图标设计等等

       ps有很多功能,在图像、图形、文字、视频、出版印刷等各方面都有涉及.Adobe家族的顶梁设计软件、想从事设计工作PS软件一定要精通

       二、AI CC

       这个AI不是人工智能,Adobe illustrator是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件。在UI设计中AI软件专门做图形处理的工具,可以做矢量的图形,包括图标、文字设计等

       AI是出版、多媒体和在线图像的工业标准矢量插画软件。 AI可以用来从事,平面设计,网页设计,UI设计等多种设计工作。

       三、AE CC

       在UI设计中AE主要用制作UI动效,例如转场动效、载入动效、粒子动效等等

       适用于从事设计和视频特技的机构,包括电视台、动画制作公司、个人后期制作工作室以及多媒体工作室。属于层类型后期软件

       四、ARP

       Axure RP是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。作为专业的原型设计工具,它能快速、高效的创建原型,同时支持多人协作设计和版本控制管理。在UI设计中ARP主要用制作交互原型图。

       Axure RP的使用者主要包括商业分析师、信息架构师、可用性专家、产品经理、IT咨询师、用户体验设计师、交互设计师、界面设计师等。

       五、sketch

       在UI设计中ARP主要用制作交互原型图。

       和ARP工具一样,不过在做苹果公司的原型图处理要更加容易

       最后补一句,软件只是一个工具,千万不要觉得会了软件就会了设计,不要太依靠软件了,学会设计方法,和设计思路结合使用工具才是正解。

       六、墨刀

       特别推荐一款上手很快的在线原型设计工具,借助墨刀,UI设计师能够快速构建移动应用产品原型,并向他人演示。覆盖整个产品的设计和开发流程,帮助整个产品团队最大限度的发挥协同效应的团队协同工具。ARP和墨刀可以二选一,两款工具基本相同。

       以上就是UI设计师需要用到的核心软件了,但UI设计你学会了这些软件,也才只是最基础的第一步,并算不上一名UI设计师,UI设计师需要的是真正的产品设计思维,清楚用户的使用场景、用户需求、理解企业的产品愿景等。

       操作技巧决定设计速度,创意思维决定设计高度,需要学习UI设计的小伙伴们抓紧这个机会啊!

       近些年来UI设计行业非常火爆的现象。还不快去抓住这个机会。

UI设计需要掌握哪些基础知识?

       UI设计需要掌握以下这些基础知识:

       一、图形界面设计(GUI):

       1、UID预科:网络数字化生存、项目管理规范、思维导图、辅助软件、职场精英;

       2、GUI软件基础:Photoshop、Illustrator、CorelDraw、Indesign ;

       3、商业设计流程及规范:企业形象识别系统建设流程、平面设计与后期印刷;

       4、阶段实训:产品展示设计、企业形象识别系统设计。

       二、传统美术(AUI):

       1、美术基础:素描的起源与绘画的作用、绘画线条练习、绘画构图;

       2、素描速写:几何体、静物、设计素描;

       3、色彩原理:色彩基础、色彩与视觉、色彩搭配、色彩与设计、绘画与创意;

       4、阶段实训:手绘图标。

       三、Web界面设计(WUI):

       1、WEB界面设计软件基础:Fireworks、Dreamweaver、Flash;

       2、WEB界面设计:WEB界面设计、PC客户端软件界面设计;

       3、WEB标准化布局:HTML/HTML5语言、CSS样式表、布局技巧与浏览器兼容;

       4、阶段实训:中小型企业网站项目、电子商务网站项目、PC客户端软件界面设计。

       四、移动设备界面设计(MUI):

       1、图标设计:剪影图标、2D彩色图标、3D彩色图标、写实图标;

       2、交互设计:交互原型图软件Axure RP、苹果iOS系统应用设计规范谷歌Android系统应用设计规范 ;

       3、界面设计:iPhone应用交互界面设计实例、iPad应用交互界面设计实例、Android应用交互界面设计实例、Windows Phone应用交互界面设计实例;

       想要了解更多关于ui设计的相关信息,推荐选择Pixso协同设计。该工具不仅是一站式产品设计协作工具,更是一款专业的UI/UX设计工具。更多矢量网格、布尔运算、样式创建、智能排版等高阶功能,组件级自动布局,增加或删除内容都无需手动调整,智能排版,且自适应不同屏幕尺寸。使设计师真正专注于创造本身。

如何学习嵌入式

       ä½œè€…:匿名用户

       é“¾æŽ¥ï¼š/question//answer/

       æ¥æºï¼šçŸ¥ä¹Ž

       è‘—作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

       å­¦ä¹ åµŒå…¥å¼ç³»ç»Ÿï¼Œé¦–先应该明确什么是嵌入式系统,否则费力去学,却不知所学为何物,岂不惘然?嵌入式系统的定义很多,这也是困扰嵌入式系统学习的一个因素。笔者根据自己开发和教学过程中的理解,以及对各种嵌入式系统的应用进行总结,提出了嵌入式系统的简单定义:嵌入式系统是嵌入式计算机系统的简称,这个定义突出嵌入式计算机系统和普通计算机系统的共性。下表列出了嵌入式系统的一些典型的应用:

       æ™ºèƒ½æœºå™¨äººï¼ˆS D R 4,火星登陆车)

       å¨±ä¹å’Œæ¶ˆè´¹ç”µå­ï¼ˆGameboy Advance,SonyPSP)

       ç½‘络通信产品(Smartphone)

       å†›ç”¨è®¾å¤‡ï¼ˆå†›ç”¨PDA )

       æ±½è½¦ï¼ˆè½¦è½½å¯¼èˆªï¼Œè‡ªåŠ¨é©¾é©¶ï¼Œå¨±ä¹ç³»ç»Ÿï¼‰

       æ™ºèƒ½ä»ªå™¨ï¼ˆè™šæ‹Ÿä»ªå™¨ï¼‰

       å®‰å…¨é˜²æŠ¤ï¼ˆé˜²ç«ï¼Œé˜²ç›—)

       çŽ¯å¢ƒä¿æŠ¤ï¼ˆæŽ¢ç©ºæ°”球)

       é“¶è¡Œå’Œå•†ä¸šæ¶ˆè´¹ï¼ˆATM)

       ä»¥ç«æ˜Ÿç™»é™†è½¦ä¸ºä¾‹æ¥åˆ†æžä¸€ä¸‹åµŒå…¥å¼ç³»ç»Ÿçš„定义。火星登陆车虽然听起来感觉在技术上有些高不可测,但是本质就是嵌入式计算机系统的应用,其核心就是一个计算机系统,而这个计算机系统的组成同传统的计算机系统在本质上没有什么差别。两者的显著不同之处就在于,用于火星登陆车的计算机系统被安装到了火星登陆车上。当然,一个计算机系统能够被安装在火星登陆车上,是需要进行很多特殊设计的。但是从本质上讲,嵌入式系统的核心概念还在计算机系统。嵌入式系统学习的重点也在计算机系统上。一方面,学习者需要牢固掌握计算机系统本身的概念,更重要的是学习嵌入系统的开发过程同传统计算机系统开发过程的差别。这里需要指出的是,很多学习者本来就没有从事过完整计算机系统的开发,高校的教学是以程序设计为中心的,计算机系统的构成,操作系统的原理,编程语言等课程都是为了能够让学生更好的使用计算机系统进行程序设计,在现有的计算平台上来设计实现各种应用,学生一般没有机会学习一个完整的计算机系统是如何构建,并亲身参与到构建的每一个过程。而对于嵌入式系统而言,从事平台开发的人就是要亲自去开发出一个完整的计算机系统,这个过程包括

       1. 需求分析

       2 硬件设计

       3 驱动程序

       4 Bootloader & BSP (板级支持包)

       5 操作系统的移植

       6 应用程序的开发

       7 性能检查

       åµŒå…¥å¼ç³»ç»Ÿæ•™å­¦çš„目的就是教会学生如何根据需求去建立满足某种特殊行业需求的嵌入式计算机系统。让学生学会如何构件硬件平台,进行硬件设计,选择能够满足应用要求的最佳的嵌入式操作系统,并完成Bootloader,BSP和驱动程序的编写,移植,调试等过程。为了满足行业需求,最终要在所建立的系统上编写调试相应的应用程序,并进行性能的测试和检查。

       ä½ æ˜¯è°,你需要学习哪些东西?

       å¦‚果你的工作只是需要在PC 机上编写一个图片浏览程序,那么你就没有必要去了解当系统收到一个ARP请求包后应该如何回应。同样的道理,嵌入式系统的学习也是有很多方面的。就嵌入式系统的设计和实现而言,基本上需要四种不同的工作:系统设计工作,硬件设计工作,驱动程序和操作系统移植工作和应用程序设计开发工作。

       1.系统设计工作

       åœ¨ç³»ç»Ÿçš„设计阶段,系统分析师将根据需求确定系统的硬件的基本构成,根据系统的需求选择使用那种处理器,使用哪种操作系统,使用那些软件开发工具。系统分析师往往是较为完整的参与过嵌入式系统设计的全过程,对于系统应用的行业较为了解,对于嵌入式系统本身的开发流程十分清楚的人。

       2.硬件设计工作

       ç³»ç»Ÿç¡¬ä»¶è®¾è®¡äººå‘˜éœ€è¦æ ¹æ®ç³»ç»Ÿåˆ†æžå¸ˆçš„设计结果,进行硬件原理图的设计。通常需要硬件设计人员熟悉嵌入式系统的硬件构成。硬件设计人员需要了解常用的嵌入式系统处理器,存储器(Flash,SDRAM),以太网MAC芯片,音频/视频编解码芯片,电源管理芯片,总线接口电路 (USB,PCI),液晶显示模块,可编程逻辑器件(FPGA/CPLD),无线网络通信模块(Bluetooth,WLAN,GPRS)等硬件电路构成元素的基本工作原理,连接使用方法,使用注意事项,基本调试方法等内容。在网络上能找到很多公司的评估板的原理图,对于这些原理图要仔细研究,摸清处理器同存储器,网卡,液晶模块等器件的连接方法和原因。通过对这些电路的研究,能够较快地了解整个嵌入式系统的构成,这些电路同实际产品中的电路虽有一定差别的,特别是对于手持设备,但这些差别不影响初学者学习嵌入式系统的硬件设计基本构成。

       ä»¥ä¸Šè¿™äº›çŸ¥è¯†ï¼Œå¾€å¾€éœ€è¦è¾ƒé•¿æ—¶é—´çš„学习和积累,需要亲自参与实践的机会。对于刚刚接触嵌入式系统硬件开发的学生来讲,一般不可能全部了解这些知识,但也不会是通通一无所知。笔者结合自己开发和教学的经验认为:首先应该选定一款主流且较为简单的嵌入式系统处理器,比如基于ARM7TDMI 内核的ATM,S3CB0 等嵌入式系统处理器,学习 位RISC处理器的编程模型,指令集。高校教学中,单片计算机课程一般以系列单片为核心讲解,由于现代位处理器的结构和开发方式同8位单片机有着较大的差别,学习者还是需要花一点力气来研究以下位处理器的。以ARM处理器为例,学习者就需要理解处理器的多种工作模式,备份寄存器,RISC 指令集的特点,MMU 和虚拟地址,中断处理过程等内容。在学习指令集的过程中,最好能够每学习几条指令,就使用这几条指令在模拟器上实验以下,观察处理器执行的结果。这个过程一方面是学习者对于指令本身的学习能够取得一个比较好的效果,另外也是对开发工具本身的一种学习。接着,就可以开始学习片上资源的使用和配置方法。这时就需要一个方便使用的开发板,学习者能够通过JTAG仿真器将开发板同调试PC机相连,进行程序的下载,调试。特别是要仔细研究系统的初始化过程和中断处理的过程。在开发过程中如果遇到问题,应自己分析问题产生的原因,通过分析缩小问题可能产生的范围,最终找到问题的所在。最重要的就是要保持一种解决问题的信心,面对困难如何处理,往往能够决定最终系统是否能够调试成功。然后,学习者可以开始仔细学习处理器同存储器的连接,存储空间的配置,各种外扩器件,如网卡,AC声卡的工作原理和使用方法。嵌入式系统硬件设计中往往需要使用可编程器件,学习者还需要一定的时间来学习使用常用的可编程器件(CP L D / F P G A),常用的有Xilinx和Altera公司的产品。进行系统硬件原理图设计,就需要使用原理图设计的EDA工具,常用的EDA 原理图设计工具主要包括Cadence公司的Capture,Protel公司的ProtelSE等。接下来就可以参照评估板的电路图,根据系统的设计要求,开始进行原理图的绘制了。在原理图绘制过程中,一定要搞清评估板电路连接的原因,对于一时没有搞清楚的问题切不可蒙混过关。例如,有些处理器的地址线是以字节位单位的,而另一些处理器的地址线则是以两个字节为单位的,当连接位的存储器的时候,切不可想当然的把处理器的A 0 直接连接到存储器的A 0 上面。另外,学生还应具有一定的PCB板图绘制能力,因为在现阶段,很多公司还不能完全把原理图的设计工作和PCB 的绘制工作分开,往往要求硬件设计人员既能进行原理图设计又能进行板图设计。即使是PCB设计和原理图设计分开的公司,也需要原理图设计者能为PCB 的设计者对于不同的信号提出布板要求。

       3.驱动程序和操作系统移植工作

       çŽ°ä»£åµŒå…¥å¼ç³»ç»Ÿçš„开发同传统8位单片机系统的开发相比,一个显著的区别就是嵌入式操作系统的广泛使用。在拿到焊接完毕的电路板,并进行基本的测试后,就要进行驱动程序和操作系统的移植工作了。首先要进行的Bootloader的编写和移植工作。Bootloader相当于PC系统的BIOS。对于有些嵌入式操作系统,如uc/OSII没有bootloader同样可以开发调试。但是对于WindowsCE和嵌入式linux系统而言Bootloader就是必须的了。本文以Windows CE 为例,做一个简要的说明。

       Windows CE 系统的移植工作主要就是BSP(板级支持包)的开发过程。BSP将具体的硬件差异同操作系统的核心隔离开来,主要由Bootloaer ,OAL(OEMAbstraction Layer)和设备驱动程序三部分组成。WindowsCE系统中Bootloader叫做Eboot。Eboot被写入系统的引导Flash。系统启动时运行Eboot,完成通过网卡将调试PC 机中WindowsCE 操作系统映像下载到目标系统的SDRAM中并开始执行的功能。对于一个系统移植人员,首先需要阅读文档,了解WindowsCE系统Bootloader和BSP的基本概念和开发过程。(呵,还要做这工作啊,我还没想到(初学^_^))Windows CE的开发系统Platform Builder提供了详细的文档和例程,开发人员需要仔细的阅读文档和例程。搞清楚各个函数之间的调用关系。在开发过程中的一个重要的步骤就是打通串口,使得目标板能够通过PC机串口向调试PC 机发送数据。由于ARM系统的仿真器比较昂贵,而且操作系统的调试往往不使用JTAG调试器进行单步调试。所以能从串口观察程序的执行过程和结果对于调试就显得十分重要了。串口打通之后一个比较棘手的问题就是网卡芯片的调试。刚刚接触嵌入式系统开发的人往往没有直接在寄存器级上使用网卡芯片的经验,而网卡芯片的说明一般都较为简短,这就要求开发者学习一些以太网的基础知识,对以太网的MAC 层有一个基本的认识。另外,各种网络调试(抓包)工具的使用也能大大降低系统调试的难度。系统的OAL需要根据具体硬件的不同做出相应的修改,这个部分可参照文档进行,在调试过程中根据串口的信息分析出错的地方。要充分发挥跨文件字符串搜索工具的功能,在浩如烟海的源文件中找到出错的位置。当然,随着开发者对系统文件目录结构的熟悉和了解,错误定位的速度会不断加快。WindowsCE 的驱动程序相对而言是比较好写的。

       4.应用程序的开发

       åµŒå…¥å¼ç³»ç»Ÿçš„应用程序开发同在PC 机上开发应用程序的区别不是很大。对于Windows CE系统而言,Microsoft已经提供了较为完善的开发工具。特别是.NET Compact work的使用,使得基于Windows CE.NETCompactwork的应用程序有了跨平台性。开发人员可以使用Windows 的C# 语言直接在PC 上进行http://CE.NET应用程序的开发和模拟调试,也可将目标系统同PC 机相连,进行联机调试。现在有很多系统支持J2ME(JAVA的嵌入式系统版本) ,这使得JAVA 在嵌入式系统应用开发中占有较大的优势。另外,作为专业的嵌入式系统软件开发人员,还需要充分了解面向对象技术和设计模式等方面的知识,当然作为初学者可以先不深入研究这方面的内容。

       å¸¸ç”¨åµŒå…¥å¼ç³»ç»Ÿå¤„理器和操作系统

       å¤„理器

       å¸¸ç”¨åµŒå…¥å¼ç³»ç»Ÿå¤„理器主要包括ARM 处理器,Power PC 处理器,基于MIPS 内核的嵌入式处理器,软核处理器(如Altera 的Nios和Xilinx的MicroBlaze等)和DSP(数字信号处理器)等。

       ARM 处理器的主要特点是具有较高的性能功耗比。ARM处理器被广泛的应用在手机,PDA等领域,其中较为著名的有Intel 公司生产的基于ARM 内核的XScale系列处理器。由于所有公司生产的基于ARM内核的处理器具有相同的编程模型,在手持和电池供电的系统中,基于ARM的嵌入式系统处理器往往被首先选用。PowerPC(简称PPC)处理器具有较强的运算性能和数据吞吐能力,在网络和数据通信领域基于PPC的嵌入式系统处理器有着广泛的应用。其中Motorola公司生产的MPC/MPC被大量地应用在嵌入式网络产品中。MIPS 处理器的特点表现在十分强大的处理能力上。作为高性能处理器,MIPS处理器适用于网络、企业及高级消费类电子应用,特别是在机顶盒系统中,MIPS处理器具有较高的市场占有率。随着可编程器件的规模不断扩大,使得人们能够根据需要定制处理器,并方便的将针对某种特殊应用定制的处理器方便的在可编程器件内部实现。除了处理器外,计算机系统还需要许多其他构成部分,比如在多通道媒体数据处理系统中,经常需要使用可编程器件来实现高速的数据处理功能,使用软核DSP来实现复杂的数字信号处理算法,同时还需要处理器进行事务处理,软核处理器将可编程器件,DSP同处理器结合在一起,为系统级设计提供了极大的灵活性。DSP(数字信号处理器)有别于通用处理器,集中表现在其强大的数字信号处理能力上。在DSP 内部提供了硬件乘累加器,处理器在设计上对于特殊的寻址方式做了优化,一些DSP 还支持零耗循环(Zero OverheadLoop)。为了方便嵌入式系统设计,主流DSP 一般也都提供了丰富的外设。特别值得一提的是ADI 公司的Blackfin 系列DSP和TI 公司的DMX系列DSP,两种处理器都提供了丰富的片上外设,非常适用嵌入式系统应用。

       æ“ä½œç³»ç»Ÿ

       http://WindowCE.NET/5.0

       ä½œä¸ºMicrosoft的产品,WindowCE.NE/5.0提供了功能完备的平台开发工具Platform Builder和应用开发工具Embedded Visual C++/Visual Studio 。WindowsCE由于拥有广大使用者所熟悉的windows界面,系统提供了众多驱动程序,并且有完备的文档支持。对于应用开发而言,熟悉Windows系统开发的程序员很容易转到WindowsCE 应用程序的开发。Windows CE将会是一个非常有前途的嵌入式操作系统。

       VxWorks

       VxWorks是由Windriver(风河)公司出品的嵌入式实时操作系统,大名鼎鼎的火星登陆车就是使用了VxWorks。Windriver为VxWorks提供了集成开发环境tornado。

       Ï…C/OSII

       Ï…C/OS是由Jean Labrosse设计编写的开放源代码的嵌入式实时操作系统,笔者最早接触的嵌入式操作系统就是它。阅读并深入理解υC/OS的源代码对于理解实时系统是大有裨益的。

       ARM Linux

       ARM linux是由Russell King和其他开发者开发移植的用于ARM 处理器的linux操作系统。ARM Linux系统在GNU GPL下发布。

       Ï…CLinux

       Ï…Clinux 是适用于没有MMU 的嵌入式处理的LinuxOS 版本。υ Clinux 同样在GNU GPL发布。

       åµŒå…¥å¼ç³»ç»Ÿå¼€å‘过程中的常见问题和解决方法

       Bootloader如何写入Flash ?

       åˆå­¦è€…一般都会遇到如何将程序写入处理器的问题。对于不同的处理器,可以采用不同的方法。例如Intel的Xscale处理器可以使用Intel公司提供的JFlash工具烧写。对于具有JTAG调试工具软件的处理器,可以使用如下思路:编写一段程序,这段程序能将位于SDRAM/SRAM 固定地址中的数据写入Flash中。烧写时,首先,将这段软件下载到SDRAM 中,然后通过调试软件将要写入Flash的数据下载到SDRAM/SRAM的某个固定地址开始的缓冲区,然后通过调试器开始执行程序,将数据写入Flash。除此以外,网络上还提供了很多专用的写Flash的工具,开发者可以根据自己的需要选用。(现在明白了我在学的那个BF为什么先下个flashProgramer.dxe先了)

       ä»€ä¹ˆæ˜¯arm-elf-gcc?

       arm-elf-gcc是一个交叉C语言编译器。我们在PC平台下编译程序,编译器运行的处理器同生成的代码将要运行的处理器相同。但是,在PC

       æœºä¸Šç¼–译ARM程序时,编译器运行的处理器同生成的代码运行的处理器不同,这种编译器叫做交叉编译器。其中的elf是指编译器生成的目标文件格式。(其实我们平时用的单片机编译器如GCC—AVR等已是交叉编译器了,我到现在才弄清楚什么是交叉编译器)

       èµ°äº†å“ªæ¡ç¼–译路径?

       ç³»ç»Ÿç¨‹åºå’Œé©±åŠ¨ç¨‹åºå¾€å¾€åŒ…含很多的编译选项,很多选项都是在编译时通过命令行定义的,如果想知道编译的是那一段程序可以使用如下的方法:

       #ifdef PLAT_AAA

       #error Code for Platform AAA

       #else

       #error Code NOT for Platform AAA

       #endif

       è¿™æ ·åœ¨ç¼–译的时候就知道,编译的是哪一条路经了。对于支持#pragma message( “I am here”)的编译器也可使用#pragma message预编译指令。

       æˆ‘怎么知道那段代码在那个文件中?

       ç³»ç»Ÿç¼–程中经常需要使用在多个文件中搜索字符串,在windows平台下可以使用平台提供的多文件字符串搜索工具。在linux平台下,可以使用grep来搜索字符串。Grep的搜索功能十分强大,支持正则表达式搜索,熟练使用grep对于阅读系统和驱动程序代码是很有帮助的。

       ç³»ç»Ÿæ˜¯ä»Žé‚£ä¸ªæ–‡ä»¶å¼€å§‹è¿è¡Œçš„?

       å¯¹äºŽWindows CE系统,一般从WINCE\PLATFORM\YourPlatform\KERNEL\HAL目录的某个汇编文件中。对于Linux系统版本不同会存在一定差异,以arm处理器为例,一般会在linux2.4.x\arch\arm\kernel的head-armv.S中。

       ç¨‹åºæ‰§è¡Œåˆ°äº†é‚£é‡Œï¼Ÿ

       å¯ä»¥åœ¨ç¨‹åºä¸­æ’入如下代码来实现

       printf( “I am here %s, %d\n”,__FILE__,__LINE__);

       ä»£ç å°†æ‰“出printf语句所在的文件名和行号。

       æŽ¨èä¹¦ç›®

       Jean J.Labrosse MicroC/OS-II The Real-TimeKernel,Second Edition这本书是笔者接触嵌入式实时系统的入门书,在国内能够买到中文版。这本书较为清楚地讲述了实时系统的概念,各个组成部分的工作原理,特别是公开了实时系统内核的源代码,仔细研究定会受益匪浅。有个小的提示,对于初学者,这本书可以先不看第一章,直接从第二章看起。

       Abraham Silberschatz, Peter Baer Galvin,GregGagne Operating System Concepts笔者在教学过程中发现,无论是计算机还是电子工程专业都有很多学生对于操作系统的基本概念都没有搞清,很少有学生有完整的系统编程经验。Operating System Concepts这本书对操作系统的概念讲述只能用经典来形容。对于嵌入式系统有兴趣深入研究的同学,首先要把基础打好,这本书就成了必读之物了。

       Andrew S. Tanenbaum Computer Networks 提起Andrew S. Tanenbaum 学习计算机的同学一定都知道OPERATINGSYSTEMs:Designand

       Implementation这本书,笔者对于Tanenbaum这样的教授由衷佩服。网络协议栈是嵌入式系统中的支柱性组成部分。愿意致力于网络深层技术研究的同学,这本书将为你们建立一个坚实的网络基础。

       Karim Yaghmour Building Embedded Linux Systems本书详尽的介绍了嵌入式linux系统的组成,基本概念和如何去建立各个部分。全书篇幅较小,可谓短小精悍。即可以作为嵌入式linux系统的入门读物,又是开发过程各个部分的指南。

       Advanced RISC Machines Ltd (ARM) ARM7 TDMI DataSheet Advanced RISC Machines Ltd (ARM) ARMTTechnical Reference Manual学习嵌入式系统不了解当前应用最广泛的嵌入式处理器怎么行?ARM7 TDMI 的 data sheet是学习ARM编程模型,指令集的好东西。在嵌入式系统中,MMU(内存管理单元)是很重要的部分,又是较难理解和掌握的部分。ARMTTechnical Reference Manual 正好可以帮你讲解这方面的内容。

       Perter Van Der LinDen Expert C Programming嵌入式系统级编程最常用的语言还是C 。很多同学都自认为自己的C语言学的很好,那好,就看看这本书吧,找找自己和Experts差距。

       åµŒå…¥å¼å¼€å‘与桌面开发既有不同,又有非常大的联系,而且十分注重实际操作能力。搞桌面开发的人在一开始接触嵌入式的时候,通常转换不过来,这主要体现在定位上。如文中所说,你是谁,你要做什么?我对硬件的了解仅限于编程领域,PCB设计一窍不通,但并不能说你不懂硬件就不能从事嵌入式开发。一个系统的开发设计方方面面,在自己感兴趣和熟悉的领域做出自己的贡献才是最主要的。

       1。硬件设计: 需要有硬件设计的经验,对各种嵌入式器件有很好的了解。

       2。系统移植:需要汇编经验,操作系统原理以及底层驱动的了解

       3。应用程序:需要桌面编程经验