无线室内分布系统设计无线工作模式设置,和前途怎么样?

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
无线室内分布系统的应用和优化.pdf 53页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:200 &&
你可能关注的文档:
··········
··········
国内图书分类号:TN913.1
学校代码:10213
国际图书分类号:621.39
密级:公开
工程硕士学位论文
无线室内分布系统的应用与优化
硕 士 研究生:郭一飞
师:刘宁庆
学 位:工程硕士
学 科、专 业:电子与通信工程
单 位:沈阳电信规划设计院
日 期:2011 年 1 月
授予学位单位:哈尔滨工业大学
Classified Index: TN913.1
U.D.C: 621.39
Dissertation for the Doctoral Degree in Engineering
THE APPLICATION AND
OPTIMIZATION OF INDOOR
DISTRIBUTION SYSTEM
Candidate:
Supervisor:
Prof. Liu Ningqing
Academic Degree Applied for:
Master of Engineering
Speciality:
Electronic
Communications
Engineering
Affiliation:
Of Shenyang
Date of Defence:
January , 2011
Degree-Conferring-Institution:
Harbin Institute of Technology
哈尔滨工业大学工程硕士学位论文
随着移动通信的飞速发展,手机等无线通信设备已经成为人们不可缺少的
现代化通信工具,移动通信的业务也从传统的话音扩展到数据,图像,视频等
多媒体业务,尤其是即将到来的第三代移动通信技术,将使移动通信的内容更
加丰富多彩。城市向来是移动通信业务热点地区,由于人口密度大,电磁环境
恶劣,加之如雨后春笋般的大型建筑的不断涌现,给网络无缝覆盖带来了困难,
室外基站覆盖信号在室内会存在接收不稳定及在地面下范围无法接收的问题。
目前3G 在我国已经开始应用,由于 3G 业务大部分是在室内应用,所以室内分
布系统的建设可以有效的解决室内的信号覆盖问题。因此室内分布系统对于 3G
网络的建设具有至关重要的作用。
本文对室内分布系统在移动通信工程中的设计与应用进行了介绍。首先对
室内分布系统分类,其次介绍了其网络构造。对室内分布系统设计与建设流程
进行说明与详细分析,然后对室内分布系统中多系统之间的干扰问题进行分析,
给出了其产生的原因,以及相应的降低干扰的措施。最后结合某体育场的室内
分布系统工程具体方案,对工程进行分析与设计,并对结果进行了测试。
关键词:室内分布系统;移动通信; 直放站
哈尔滨工业大学工程硕士学位论文
正在加载中,请稍后...室内分布系统_百度百科
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
室内分布系统
室内分布系统是针对室内用户群、用于改善建筑物内移动通信环境的一种成功的方案;是利用室内天线分布系统将移动基站的信号均匀分布在室内每个角落,从而保证室内区域拥有理想的信号覆盖。
室内分布系统出现原因
1、室内移动通信环境有太多需要完善的地方;2、覆盖方面,由于建筑物自身的屏蔽和吸收作用,造成了无线电波较大的传输衰耗,形成了移动信号的弱场强区甚至盲区;3、容量方面,建筑物诸如大型购物商场、会议中心,由于移动电话使用密度过大,局部网络容量不能满足用户需求,无线信道发生拥塞现象;4、质量方面,建筑物高层空间极易存在无线频率干扰,服务小区信号不稳定,出现乒乓切换效应,话音质量难以保证,并出现掉话现象。室内分布系统的建设,可以较为全面地改善建筑物内的通话质量,提高移动电话接通率,开辟出高质量的室内移动通信区域;同时,使用微蜂窝系统可以分担室外宏蜂窝话务,扩大网络容量,从整体上提高移动网络的服务水平。
室内分布系统不同信息源选择比较
室内分布系统信源选择的比较
使用基站使用直放站1. 是否增加容量(根据需要增加容量/不能增加容量)2. 信号质量(好/一般)3. 对网络的影响(小/控制不好影响很大)4. 是否需要传输设备(需要/不需要)5. 是否需要重新频率规划(需要/不需要)6. 是否需要调整参数(需要/支持)7. 是否支持容量动态分配(不支持容量预分配/支持). 是否支持多运营商(不支持/支持)9. 安装时间(较长/较短)10. 投资(较多/较少)
室内分布系统组网分类
室内分布系统的组网按照信号源有以下几种接入方式:o(1) 宏蜂窝作信源接入信号分布系统;o(2) 微蜂窝作信源接入信号分布系统;o(3) 直放站作信源接入信号分布系统。
室内分布系统系统分类
室内分布系统根据传输媒介分为:(1)射频无源分布系统;(2)射频有源分布系统;(3)光纤分布方式(4)泄露电缆分布方式
室内分布系统LTE室内分布系统介绍
室内分布系统是用于改善建筑物内移动通信环境的一种方案,其原理是通过各种室内天线将移动通信基站的信号均匀地分布到室内的每个角落,从而保证室内区域理想的信号覆盖。
室内分布系统的建设,可以较为全面有效地改善建筑物内的通话质量,提高移动电话接通率,开辟出高质量的室内移动通信区域。同时,采用微/宏蜂窝作为室内分布系统的信源还可以有效地分担室外宏蜂窝的话务,从而提升网络的容量,从整体上提高移动网络的服务水平。
室内分布系统主要由来自各种制式网络的施主信源和信号分布系统两部分组成。施主信源包括基站、基站拉远设备、无线或有线中继设备。室内信号分布系统由有源器件、无源器件、天线、缆线等组成。系统结构如图10-27所示。
无线信号的引入应考虑应用频段和通信制式的适用限制,满足所建通信制式系统建设要求。各通信制式室内覆盖系统可单独建设,满足各自制式的网络指标要求,也可以采用多制式共用信号分布系统方式。当多制式合路时,各制式系统应满足各自的网络指标要求,并保证各制式系统间互不干扰。
如图10-27所示,室内分布系统主要由施主信源和信号分布系统组成。
施主信源分为宏基站、微蜂窝、分布式基站和中继接入的各类直放站等。施主信源可从分担的业务类别、容量,分散过密地区的网络压力,动态地调配业务资源,达到最佳的网络优化角度进行综合考虑选取。施主信源的馈送应根据地理环境的不同采用近端射频线缆本地的直接馈送和远端光纤或其他中继电路的馈送方式,室内分布系统的施主信源放置在本地室内时,必须考虑授时系统天线的引入,确保通信信号的同步。
宏基站信源的业务容量大,扩容方便,输出端口多,在应用中可以选择使用单通道和多通道两种解决方案。但一般对机房及电源环境要求较高,建筑物内应设有机房条件。
微蜂窝基站信源是一种专门为室内覆盖区域独立承载提供业务量的方式,采用射频电缆接入方式直接与信号分布系统相连,通过信号分布系统均匀分配至各个天线端口,实现室内有效覆盖,且设备安装简单,不需要单独的机房。但在室内微蜂窝基站设置仍需增建传输系统与基站控制器衔接。
分布式基站信源话务容量大,组网灵活,能将富余话务容量拉远至定点覆盖区域,除了可以实现本地接入,也能实现远端拉远接入。
采用直放站作为馈送信号源,通过中继接力方式将室外宏基站的信号引入到室内覆盖盲区,既可以增强室内覆盖质量,又可以共享宏基站的基带处理能力。直放站信源常用于室外站存在富余容量,可以扩大至室内覆盖范围的应用场景。在使用无线直放站作为信号源接入时应考虑到周围的无线环境影响及宏基站的业务容量的限定。
信号分布系统是根据网络传输的制式和频段,结合不同建筑物损耗及场景选取不同的覆盖分布方式。其中包括无源分布系统、有源分布系统、泄漏电缆分布系统、光纤分布系统、基站或直放站拉远分布系统和混合分布系统等。
无源天馈分布方式由除信号源外的耦合器、功率分配器、合路器等无源器件和电缆、天线组成,通过无源器件进行信号分路传输,经馈线将信号尽可能平均分配至分散安装在建筑物各个区域的每一付天线上,从而实现室内信号的均匀分布。该分布方式适用于中等面积建筑物室内盲区的覆盖,无源天馈分布系统示意图如图10-28所示。
无源分布系统示意图
有源分布系统由除信号源外的放大器类设备(干线放大器、光纤直放站等)、耦合器、功分器、合路器等有源、无源器件和馈线、无源天线或有源天线等组成,同时还可增加滤波器用以增大抑制无线空间干扰信号进入上行有源设备的隔离度,系统示意图如图10-29所示。
有源分布系统示意图
有源分布系统主要用于建筑面积较大的建筑物内或狭长隧道类型的室内环境,需要增加放大器,用以补偿信号在传输过程中的损耗。当一级放大器无法完成对某一区域的覆盖时,可采用多级放大器级联的方式完成信号的延伸覆盖。采用级联方式时应通过限定级联级数的方法保证上行噪声不超出基站接收端口的杂散噪声最低规定门限。
采用泄漏电缆分布方式的信号分布系统称为泄漏电缆分布系统,利用功率放大器和射频宽带合路器或耦合器,将多种频段的无线信号通过泄漏电缆进行传输覆盖。系统不需要天线阵列和其他部件,结构简单,但传输损耗大。它适用于隧道、地铁、长廊、高层升降电梯等特定环境的覆盖,如图10-30所示。泄漏电缆可以保证信号场强均匀分布,克服驻波场。由于泄漏电缆损耗较大,传输距离短,对传输距离长的区域通常加有中继放大。
泄漏电缆分布系统示意图
光纤室内分布系统是基于全光纤分布方式,它直接通过光纤传输分配至各处的天线节点,再经光电转换把射频信号连接到每个天线上。系统由主单元、光纤线路、含光电转换远端单元以及天线组成。其具体组网结构如图10-31所示。
光纤室内分布系统示意图
应用全光结构的分布系统方式,远端设备与天线可以是分离或一体化结构,由于省去了射频器件及线缆的传输损耗,输出电信号功率较小,在多系统共用情况下降低了相互之间的射频干扰影响。同时应用全光纤室内分布方式可扩展传输通道的带宽,以满足多制式宽带业务的需求。这种方式适用于小型的住宅和旅馆区域,又可适用于中大型覆盖范围或者中大型业务密集公共场馆。
多系统共用室内分布方式是多系统、多网络共用共享的一种组网接入方式,可分为收发共用传输路径和收发分路传输路径两种方式,组成结构分别如图10-32和图10-33所示。采用多系统接入综合分路平台POI,通过对不同制式之间的频段隔离实现在室内多制式、多系统的重叠覆盖,对后来接入的系统可采用后端馈入的方式,如无线局域网系统,但须考虑原有覆盖路径适用的频率范围。对较长的分支路径需采用有源器件(如放大器等)增加传输信号强度时,各系统有源器件相互独立,上下输入端需考虑收发隔离及带外频段的抑制能力,有源设备需放置在具有隔离效果的无源器件(如多频率分路/合路器或收发滤波器等)中间,以避免系统之间的有源干扰。
多系统共用室内分布方式-收发共用
多系统共用室内分布方式-收发分路
本词条内容贡献者为
副理事长兼秘书长
中国通信学会
中国通信学会
原武汉邮电科学研究院
中国联通网络技术研究院
工业和信息化部电信研究院互联网中心
副院长兼总工程师
中国移动设计院
首席架构师业务总工程师
中兴通讯股份有限公司
百度公司发展研究中心
中国通信学会科普中国百科科学词条评审专家委员会
中国通信学会是全国通信...
提供资源类型:内容&p&谢邀。&/p&&p&不要去大城市。&/p&&p&我跟周围所有年轻的朋友们都这么说。三点原因。&/p&&p&1,房价不合理。&/p&&p&南京不算一线城市,房价已经直逼4万。北上广深这些城市更不合理。这么高的房价意味着普通工薪阶层合二老三代之力即使凑出300万来!也只能买一个100平的房子……(限南京区域,上海北京还买不到。)&/p&&p&&b&100平房子实用面积85。&/b&&/p&&p&&b&试想一个外地人在大城市生了孩子定了居,要不要接父母来带孩子?&/b&&/p&&p&&b&最后面临的就是一家5口人住85平的房子里。你会发现生活没有任何所谓的改善。&/b&&/p&&p&&b&仍旧拥挤。&/b&&/p&&p&试问又有多少家庭能一口气掏出300万来给子女在大城市买房呢?应该说不多,那只能贷款。一个月的工资交给银行,剩下点钱还要养车养孩子养父母。&/p&&p&这样的生活幸福吗?&/p&&p&憋跟我提大城市机会多。下文会说到这种机会到底是什么机会。&/p&&p&事实上大城市唯一的优势不是教育资源,我见过无数苏北淮安安徽湖南等相对偏远地区的朋友考到东大南大,博士硕士的比比皆是。大城市真正的优势是医疗资源。医疗资源的优势这是客观存在的。&/p&&p&是不是污染、压力、亚健康造成的呢?苦笑。&/p&&p&2,工作机会少。&/p&&p&我们一群朋友在一块聊天时常说。博士硕士这个学历,在南京不值钱。在自个家那儿的城市里就是诸侯,要是到了自个家的县城里那就是霸王。&/p&&p&南京所有高校招聘教师全线要求博士。可离南京一站路的泰州学院,硕士生就高层次人才引进了。南京的博士进高校工作,就拿一份工资加一份住房津贴;可是如果博士去合肥,分房子给职称解决子女上学问题。一比之下高下立判。南京还不是大城市,估计北京上海博士更不值钱,硕士恨不得满大街。&/p&&p&&b&试问同样是国民教育体系里培养出来的学位,不同城市待遇差这么多,这不是自我学位贬值吗?&/b&&/p&&p&纠正一个误区。大城市机会多。&/p&&p&这个所谓机会是对打工仔打工妹来说的。在老家,只能务农。进了城,可以去个星级宾馆端端盘子做好了能做大厅经理。或者学学程序做做商务陪陪酒。这是所谓的机会多。&/p&&p&而对于广大接受过高等教育有着可以“唬人”的学历的年轻人来说——&/p&&p&唬人要唬到位,不然你就白念了。&/p&&p&3,购物选择多是假象。&/p&&p&有人说大城市一线品牌多,生活的精彩。这是完全不存在的。&/p&&p&把几百万住房上的成本留下来。&/p&&p&比如,南京一平米四万,三线城市地级市一平米八千。同样买100平南京花400万,地级市只要80万。&/p&&p&你省下这320万来啥玩意买不到??&/p&&p&奔驰宝马奥迪凯迪拉克随便开,百达翡丽矮而威随便戴。何必在所谓大城市买个房子然后天天挤地铁上班??&/p&&p&或者同样的钱在家乡买个180的房子宽敞舒亮,&b&利用自己的专业&/b&在三四线城市里开培训教育班,&b&成为自由职业者&/b&,把在大学里学到的东西轻轻松松教小朋友say hi goodbye,写作文,算算数,吹拉弹唱等等。如果有机会再进本地的学校。谁特么去万达广场、奥特莱斯名店街?每年直接东京购物,香港海淘!&/p&&p&你可以追求大城市里别人家闪亮的霓虹,每晚回到80年代的合租房里脱了高跟鞋抱着手机找不到人聊天。我独爱小城市里春风抚面晨钟暮鼓,每天回到爸爸妈妈身边。&/p&&p&以上&/p&&p&以下是废话,可以不用看了。&/p&&br&&br&&p&——————————————————更新分割线——————————————&/p&&p&收到很多知友的私信,谢谢大家。&/p&&p&集中回答一下:&/p&&p&1,为什么关评论。因为知乎低龄化现象严重,且大多没说两句就开喷。所以关闭评论也是图个清静。(现在已开,大家随便吧,开心就好。)&/p&&p&2,关于“工作机会”和“环境造就人”的问题,我建议看移步去我另两个回答里看我的观点:&/p&&p&&b&&a href=&/question//answer/& class=&internal&&努力工作的员工会让老板感动吗? - 知乎&/a&&/b&&/p&&p&&b&&a href=&/question//answer/& class=&internal&&由华为裁员传闻引发的思考:年轻人如何避免中年危机? - 知乎&/a&&/b&&/p&&p&有知友说回到三线小城后上下班没人管,迟到早退都随意,很不适合人的“进步”、“进取”、也涨不了薪等等;我一直强调的观点是&b&当下的职业方式应该是个人品牌的营造&/b&,就像我在上篇回答中提到的,&b&风格即市场,品牌即个人&/b&。不论你是开公众号还是或者思维脑路说段子、游戏测评变形金刚模型制作淘宝手工阴阳师玄学三百问三国杀武将测评AV年度精选二十部十大红人等等等等,&b&每个人都应该树立起属于自己的品牌。&/b&&/p&&p&&b&千万不要再有什么去大城市BAT好好敲代码一直敲到65岁退休这种思维了。&/b&&/p&&p&都太乖了。&/p&&p&我们中国的教育把人都驯化的如同绵羊一样,仿佛脱了圈就要饿死了。&/p&&p&有知友说,在长沙GRE的考试培训就一家,好LOW好封闭好没眼界如何如何。&/p&&p&我的天哪,市场啊大兄弟!你回长沙即使教不了GRE教个初中小学的英语培训不成问题吧。如果你是英语专业再拉上几个同学妥妥有市场啊。&/p&&p&大家别一说市场就是想到搞成和新东方一样美国上市每个人分几百个亿如何如何。就开个英语培训的工作室,价格比老大低点,二三十个学生足够养活你们了。&/p&&p&&b&还有,别说一说小城市就7线8线&/b&。诚然我承认“千山万壑,黄土高坡”的确没啥发展。我们是不是可以把脑路活跃点,&b&把眼光放在发达板块的地级市呢?&/b&&/p&&p&&b&房价没那么高,你的学历又相对值钱&/b&,岂不是美哉?&/p&&p&——————————割了又割—————————————————&/p&&p&目前为止我3.8k的赞是本话题最高的票数,可排序排在中位。可见点反对的人也不少。庆幸关了评论,不然一定吵炸了。哇哈哈。&/p&&p&知乎上周删了我一个10k的回答说哔哔敏感,这次准备找啥借口删呢?&/p&&p&以上。&/p&&p&————————割了又割又割——————————————————&/p&&p&收到四五条私信质问我:你那个眼睛看到合肥高校博士生引进给房子的??&/p&&p&抱歉,我记错了,不是合肥,是巢湖。&/p&&p&印象中都在安徽,写文的时候就没有再查阅了,不谨慎,我的错,抱歉~~~~&/p&&p&附上高校招聘网最新的巢湖学院的人才引进消息:&/p&&blockquote&&a href=&///?target=http%3A///zhaopin/zhuanti/chxy2016/index.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&巢湖学院2017年人才引进与教师招聘公告_高校人才网&i class=&icon-external&&&/i&&/a&&/blockquote&&p&大家自己看吧。我就不截图了。免得帖子拉的太长。&/p&&p&教师岗位硕士就能去了。这在南京是不可能的。南京全线要求博士,哪怕就是一个普通的讲师也是博士起。&/p&&p&其次,巢湖学院对于博士,公告中已写了相关待遇:“安家费”+“科研经费”+“ 提供120-140平方米免租住房一套 ”。大家自己看吧。&/p&&p&以上。&/p&&p&————————割了又割又割又割——————————————————&/p&&p&鉴于部分朋友的阅读理解能力,我把重点(段落中心大意)都划出来了/手动滑稽。&/p&&p&不要再发私信或者写回答@我说什么“小城市就是不努力不学习,待在小城市就享乐主义”等等云云了。麻烦先看懂本文的中心思想再反驳。有的放矢,别跑题。&/p&&p&还有,&b&谁规定了小城市别人混日子就等于你也要混日子吗?&/b&好奇怪的逻辑啊,哈哈。&/p&&p&我现在每天忙的公众号没时间写,绘本约了每天只能画一点点迟迟出不了稿。要是有个让我混日子还给我上五险一金的地儿多好啊/手动大误。&/p&&p&代沟真是无法逾越了,不是时代的代,是迭代的代。就业思维的迭代。&/p&&p&哦对了,我是南京土著。所以不是混不下去才回“三线的loser”。(我倒是想去三线呢/笑哭)&/p&&p&以上。&/p&&p&——————————割了又割又割又割—————————————————&/p&&p&说享受大城市拼搏的快感,大学还没毕业吧?明道演的偶像剧看多了吧?以为大城市拼搏就是帅帅的穿着西装打着领带在三百多米高的玻璃大厦CBD里坐着人体按摩工程学的座椅端着咖啡说:Maggie,你说的我真的不care,那个web page,你show me的……&/p&&p&拜托问问某司,问问BAT的。996是不是特有成就感。&/p&&p&“我牛逼死了,别人双休我单休,我奋斗我正能量”。&/p&&p&“我牛逼死了,这孙子又请年假去菲律宾了,我奋斗我正能量”。&/p&&p&“我牛逼死了,老婆生孩子我就回去看了一眼,下午就来上班了,我奋斗我正能量”。&/p&&p&啥,你是女的?&/p&&p&“老娘我牛逼死了,这群绿茶二十八九岁一个个生个孩子喂奶煮粥,好安逸,垃圾。看我多正能量,十一点半刚下班。妇女能顶半边天”。&/p&&p&……&/p&&p&马克思主义文艺理论第四章&b&“异化劳动”&/b&很值得一读。&/p&&p&对于那些说:我是真的回不去、家乡实在没发展、我也不会啥,只能在大城市写代码的知友。我真心的提醒你们,&/p&&p&一定要居安思危,找出一条自己的后路做备手。&/p&&p&否则年龄一大或者行业一变动,“某司”亮刀子的时候可不会管您“回不回的去”了。&/p&&p&以上。&/p&
谢邀。不要去大城市。我跟周围所有年轻的朋友们都这么说。三点原因。1,房价不合理。南京不算一线城市,房价已经直逼4万。北上广深这些城市更不合理。这么高的房价意味着普通工薪阶层合二老三代之力即使凑出300万来!也只能买一个100平的房子……(限南京区…
&p&总的来说,对待工作不要太感性。&/p&&p&你要思考的不是老板会不会感动,而是你这么努力的工作,你自己的能力是否得到了成长。&/p&&br&&p&1. 老板对待员工,如果是正常的老板,肯定会希望员工努力勤奋的工作,为公司创造价值。所以,从这个角度看,你卖力的工作,老板自然会对你器重(因为你在为公司创造价值),不管你做的是什么工作,只要老板在公司设置了这个职位,就一定有他认为的价值。&/p&&br&&p&2. 但是更重要的是,你要思考你自己的工作对你的成长是否有价值,如果这是个可替代性难度很低的螺丝钉类的工作,那么你再怎么努力,你的成长是有限的,可以说,你花费越多的时间和精力对你越是不利,因为,老板随便找个人培训一下,就能顶替你的位置。而你努力那么久,出去找工作并没有任何优势可言。&/p&&br&&p&总之,先看清自己工作的价值和前途,再努力工作,不要在一个没有前途的路上埋头苦干,要抬头看看路。&/p&
总的来说,对待工作不要太感性。你要思考的不是老板会不会感动,而是你这么努力的工作,你自己的能力是否得到了成长。 1. 老板对待员工,如果是正常的老板,肯定会希望员工努力勤奋的工作,为公司创造价值。所以,从这个角度看,你卖力的工作,老板自然会对…
更新一波,已经跳到一家大互联网公司一年了,也算是实现了几年前的理想。这一年的经历基本印证了之前的内容,最大的感悟是大公司的部门之间,真的是差距好大。哪天有兴趣了再来好好写写。&br&&br&----------------------------------------我是..随你们怎么说的分隔线---------------------------------------------------------&br&&br&这个问题答主以前也想过,现在看来答案太简单了,&b&会考虑这个问题的人直接去大公司&/b&。&br&&br&答主的职业生涯至今是:100多亿销售额的中大型公司 - 10多亿销售额的中小型公司 - 2亿销售额的小型公司(权且粗暴的以销售额论大小),时至今日个人能力得到了全方位的锻炼,也开始陆续收到不少猎头和创业公司的邀请,但扪心自省,我现在去小公司非常容易,哪怕跨跨行都没问题;但是想去大公司,除非是完全对口的,否则就比较难。&br&&br&相反,如果是有大公司经验的人,想去别的大公司或者小公司都会比较容易,只要价钱谈得拢。也就是说,有大公司从业经验的人,就业选择面会更广。&br&&br&所以答主认为,&b&刚毕业的大学生,或者30岁以前的跳槽者,有机会一定要去大公司锻炼,锻炼几年之后,你可以再看看是否有好的创业公司的机会&/b&。但是对于30岁以上的有大公司工作经验的人,去小公司就能做高层、拿股份,而且自己对创业团队的管理层有了比较有把握的判断力,而且自己也还有激情在,这个时候就可以考虑考虑去小公司了。&br&&br&&br&下面大致画了个大公司、小公司优势对比图:&br&&img src=&/ebe2fbcbd66dcc6041445a_b.jpg& data-rawwidth=&1698& data-rawheight=&526& class=&origin_image zh-lightbox-thumb& width=&1698& data-original=&/ebe2fbcbd66dcc6041445a_r.jpg&&注意这里面的优势都是相对而言的,不是绝对的。有些大公司将团队拆分小型化,扁平式管理也实现了很高效的运作。有些小公司领导人不懂管理,又想学习大公司的规范、流程,结果导致小小公司得了大企业病,最后落得一无是处可悲可笑。&br&&br&其实有“去大公司还是小公司”这个问题对题主而言已经是一种幸福了,很多人根本没有这个选择,看了他们的简历只有小公司愿意给他们面试机会,这些人不在少数。&br&&ul&&li&在小公司,由于竞争不那么激烈,优秀的人是比较容易拔尖,但是被拔尖后你在得到更好的待遇的同时也会收到更大的责任、压力和期望值,如果没有大公司从业的经验和人脉,完全从零去做,真的会非常辛苦,尤其是碰到缺乏指导和耐心的上峰,最终反而可能拔苗助长。&/li&&li&而且对于初入职场不久的新人,往往缺乏对一个工作机会的判断力,被老板忽悠几句就认为这公司就是未来的阿里巴巴了,实际上好的小公司本就凤毛麟角,碰到实需猿粪。所以前面我说了个30岁,30不是确数,是等到我们有了相对比较丰富的经验后,判断力会更好,知道去看创始人的格局、去看管理团队的团结力、去看相关岗位的战斗力、去看公司的商业模式和YY空间、去看行业竞争格局。这样的选择对自己和对企业都会更负责任一些。&br&&/li&&li&另外很多小公司的创始人自己也缺高层职业经理人的经验,凭借原始的商业嗅觉让公司活下来了并走到了一定的规模,再往上走的时候后劲乏力因此开始吸引外部人才,这个时候找的一定是大公司的职业经理人进来做高管。创始人担心被架空,因此可能会有意识的找不同背景的职业经理人,这样又可能导致VP之间由于文化、背景差异出现嫌隙,最终丧失小公司人事简单的优势,内耗增大。&/li&&/ul&&br&黑了小公司这么多,再黑一下大公司,黑黑更健康。&br&由于公司发展需要今年面试了很多人,挑简历的时候我们会更倾向有名校、名企背景的,这样风险会小很多,但面试了几十个有大公司背景的,结果反而让我们比较失望。&br&&br&&ul&&li&大公司出来的PM,我们比较认可的,格局比较大的,薪水期望常常远高于我们的预算,我们也不是给不起,只是觉得给到这个价位的时候这个人该更厉害一点点才对。&/li&&li&薪水期望较低的PM,往往格局比较小,都很聪明,也比较有趣,开朗乐观爱运动,但是爱纠结于细节。比如让他评价某款竞品的时候容易陷于对UI、交互、功能模块的评判对比,没办法从商业模式、产品定位、产品之外的层面去考虑怎样在与他们的竞争中尽快脱颖而出,或者怎样快速跟随然后反超。&/li&&li&缺乏对这个职业机会的判断能力。面试最后一个环节一般都是让面试者问我他们想了解的信息,本来我还想了蛮多美化我司的说辞,结果基本都用不上。。他们在判断这个工作机会的时候更多的是凭借感觉而不是理性分析,以及其他人的意见。&/li&&/ul&&br&不过总的说来,面试有大公司经验的人一般比没有经验的人更有意思一些,我微信上也加了不少没能达成意向但双方均还互相认可的朋友。面试一直都在小公司干的人,经常会出现完全无法清晰表达自己意思的情况,我们可是能说会道的产品汪哎。&br&&br&&b&八了这么多,其实不论大公司还是小公司,选个懂你负责的产品的、有管理经验的、愿意指导培养你的、有容人之度的直属上峰比什么都重要。&/b&
更新一波,已经跳到一家大互联网公司一年了,也算是实现了几年前的理想。这一年的经历基本印证了之前的内容,最大的感悟是大公司的部门之间,真的是差距好大。哪天有兴趣了再来好好写写。 ----------------------------------------我是..随你们怎…
嵌入式Linux+Android学习路线图&br&作者:韦东山&br&&br&本文目录&br&1. 程序员的三大方向 &br&1.1 专业领域 &br&1.1.1 学术研究 &br&1.1.2 工程实现 &br&1.2 业务领域 &br&1.2.1 界面显示 &br&1.2.2 业务逻辑 &br&1.3 操作系统领域 &br&1.4 嵌入式Linux+Android系统包含哪些内容 &br&2. 怎么学习嵌入式Linux操作系统 &br&2.1 入门路线图 &br&2.2 学习驱动程序之前的基础知识 &br&2.2.1 C语言 &br&2.2.2 PC Linux基本操作: &br&2.2.3 硬件知识 &br&2.2.4 要不要专门学习Windows下的单片机开发 &br&2.2.5 为什么选择ARM9 S3C2440开发板,而不是其他性能更好的? &br&2.2.6 怎么学习ARM+Linux的裸机开发 &br&2.2.7 bootloader的学习 &br&2.2.8 Linux内核的学习 &br&2.2.9 根文件系统 &br&2.3 驱动程序的学习 &br&2.3.1 经典字符设备驱动程序 &br&2.3.2 工作中各类驱动程序 &br&2.3.3 调试方法 &br&2.4 Linux应用程序的学习 &br&3. 怎么学习整个Android系统 &br&&br&我是1999年上的大学,物理专业。在大一时,我们班里普遍弥漫着对未来的不安,不知道学习了物理后出去能做什么。你当下的经历、当下的学习,在未来的一天肯定会影响到你。毕业后我们也各自找到了自己的职业:出国深造转行做金融、留校任教做科研、设计芯片、写程序、创办公司等等,这一切都离不开在校时学到的基础技能(数学、IT、电子电路)、受过煅炼的自学能力。&br&所以,各位正在迷茫的在校生,各位正在尝试转行的程序员,未来一定有你的位置,是好是坏取决于你当下的努力与积累。&br&&br&我不能预言几年后什么行业会热门,也不能保证你照着本文学习可以发财。我只是一个有十几年经验的程序员,给对编程有兴趣的你,提供一些建议。&br&&br&1. 程序员的三大方向&br&程序员的方向,一般可以分为3类:专业领域、业务领域、操作系统领域。你了解它们后,按兴趣选择吧。&br&对于专业领域,我提供不了建议。&br&业务,也就是应用程序,它跟操作系统并不是截然分开的:&br&① 开发实体产品时,应用程序写得好的人,有时候需要操作系统的知识,比如调度优先级的设置、知道某些函数可能会令进程休眠。&br&② 写应用程序的人进阶为系统工程师时,他需要从上到下都了解,这时候就需要有操作系统领域的知识了,否则,你怎么设计整个系统的方案呢?&br&③ 做应用程序的人,需要了解行业的需求,理解业务的逻辑。所以,当领导的人,多是做应用的。一旦钻入了某个行业,很难换行业。&br&④ 而操作系统领域,做好了这是通杀各行业:他只负责底层系统,在上面开发什么业务跟他没关系。这行很多是技术宅,行业专家。&br&⑤ 操作系统和业务之间并没有一个界线。有操作系统经验,再去做应用,你会对系统知根知底,碰到问题时都有解决思路。有了业务经验,你再了解一下操作系统,很快就可以组成一个团队自立门户,至少做个CTO没问题。&br&1.1 专业领域&br&它又可以分为下面2类。&br&&br&1.1.1 学术研究&br&比如语音、图像处理、人工智能,这类工作需要你有比较强的理论知识,我倾向于认为这类人是“科学家”,他们钻研多年,很多时候是在做学术研究。&br&在嵌入式领域,需要把他们的成果用某种算法表达出来,针对某种芯片进行优化,这部分工作也许有专人来做。&br&&br&1.1.2 工程实现&br&也有这样一类人,他们懂得这些专业领域的概念,但是没有深入钻研。可以使用各类开源资料实现某个目标,做出产品。比如图像处理,他懂得用opencv里几百个复杂函数来实现头像识别。有时候还可以根据具体芯片来优化这些函数。&br&“专业领域”不是我的菜,如果你要做这一块,我想最好的入门方法是在学校学习研究生、博士课程。&br&&br&1.2 业务领域&br&换句话说,就是应用程序,这又可以分为下面2类。&br&&br&1.2.1 界面显示&br&做产品当然需要好的界面,但是,不是说它不重要,是没什么发展后劲。&br&现在的热门词是Android APP和IOS APP开发。你不要被Android、IOS两个词骗了,它们跟以前的VC、VB是同一路货色,只是、仅仅是一套GUI控件的实现。&br&希望没有冒犯到你,我有理由。&br&一个程序需要有GUI界面,但是程序的内在逻辑才是核心。Android、IOS的开发工具给我们简化了GUI的开发,并提供了这些控件的交互机制,封装并提供了一些服务(比如网络传输)。&br&但是程序内部的业务逻辑、对视频图像声音的处理等等,这才是核心。&br&另外别忘了服务器那边的后台程序:怎样更安全地保存数据、保护客户的隐私,怎样处理成千上万上百万的并发访问,等等,这也是核心。&br&但是,从Android、IOS APP入门入行,这很快!如果你是大四,急于找到一份工作,那么花上1、2个月去学习Android或IOS,应该容易找到工作,毕竟APP的需求永远是最大的,现在这两门技术还算热门。&br&在年左右,Android程序员的起薪挺高,然后开始下滑。Android APP的入门基本只要1个月,所以懂的人也越来越多。&br&年,IOS开发的工资明显比Android高了,于是各类IOS培训也火曝起来。中华大地向来不缺速成人才,估计再过一阵子IOS工程师也是白菜价了。&br&会Android、IOS只是基本要求,不信去51job搜搜Android或IOS,职位要求里肯定其他要求。&br&&br&1.2.2 业务逻辑&br&举个简单例子,做一个打卡软件,你需要考虑这些东西:&br&① 正常流程是上班下班时都要打卡&br&② 有人忘记了怎么办?作为异常记录在案,推送给管理员&br&③ 请假时怎么处理?&br&④ 加班怎么处理?&br&对于更复杂的例子,视频会议系统里,各个模块怎么对接,各类协议怎么兼容,你不深入这个行业,你根本搞不清楚。&br&应用开发的职位永远是最多的,入门门槛也低。基本上只要你会C语言,面试时表现比较得体,一般公司都会给你机会。因为:&br&① 你进公司后,还需要重新培训你:熟悉它们的业务逻辑。&br&② 你要做的,基本也就是一个个模块,框架都有人给你定好了,你去填代码就可以了。&br&说点让你高兴的事:软件公司里,做领导的基本都是写应用程序的(当然还有做市场的)。写应用程序的人,对外可以研究市场接待客户,对内可以管理程序员完成开发,不让他做领导让谁做?&br&如果你的志向是写应用程序,那么我建议你先练好基本功:数据结构、算法是必备,然后凭兴趣选择数据库、网络编程等等进行深入钻研。&br&最后,选择你看好的、感兴趣的行业深耕个10年吧。做应用开发的人选择了某个行业,后面是很难换行业的,选行很重要!&br&&br&1.3 操作系统领域&br&UCOS太简单,VxWorks太贵太专业,Windows不玩嵌入式了,IOS不开源,所以对于操作系统领域我们也只能玩Linux了。&br&在嵌入式领域Linux一家独大!&br&Android呢?Android跟QT一样,都是一套GUI系统。只是Google的实力太强了,现在Android无处不在,所以很多时候Linux+Android成了标配。注意,在这里我们关心的是Android的整个系统、里面的机制,而不是学习几个API然后开发界面程序。&br&操作系统领域所包含的内容,简单地说,就是制作出一台装好系统的专用“电脑”,可以分为:&br&① 为产品规划硬件:&br&按需求、性能、成本选择主芯片,搭配周边外设,交由硬件开发人员设计。&br&② 给单板制作、安装操作系统、编写驱动&br&③ 定制维护、升级等系统方案&br&④ 还可能要配置、安装Android等GUI系统:&br&⑤ 为应用开发人员配置开发环境&br&⑥ 从系统角度解决疑难问题&br&这个领域,通常被称为“底层系统”或是“驱动开发”。&br&&br&先解决2个常见误区:&br&① 这份工作是写驱动程序吗?&br&看看上面罗列的6点,应该说,它包含驱动开发,但远远不只有驱动开发。&br&② 我们还需要写驱动吗?不是有原厂吗?或者只需要改改就可以?&br&经常有人说,芯片原厂都做好驱动了,拿过来改改就可以了。如果,你的硬件跟原厂的公板完全一样,原厂源码毫无BUG,不想优化性能、削减成本,不想做一些有特色的产品,那这话是正确的。&br&但是在这个不创新就是找死的年代,可能吗?!原因有二:&br&① 即使只是修改代码,能修改的前提是能理解;能理解的最好煅炼方法是从零写出若干驱动程序&br&② 很多时候,需要你深度定制系统。&br&以前做联发科手机只需要改改界面就可以出货了,现在山寨厂一批批倒下。大家都使用原厂的方案而不加修改时,最后只能拼成本。&br&&br&举个例子,深圳有2家做交通摄像头、监控摄像头的厂家,他们曾经找我做过4个项目:&br&① 改进厂家给的SD卡驱动性能,使用DMA。&br&② 换了Flash型号后,系统经常出问题,需要修改驱动BUG。&br&③ 触摸屏点击不准,找原因,后来发现是旁路电容导致的。&br&④ 裁减成本,把4片DDR换为2片DDR,需要改bootloader对DDR的初始化。&br&&br&这些项目都很急,搞不定就无法出货,这时候找原厂?除非你是中兴华为等大客户,否则谁理你?&br&我在中兴公司上班时,写驱动的时间其实是很少的,大部分时间是调试:系统调优,上帮APP工程师、下帮硬件工程师查找问题。&br&&br&我们从厂家、网上得到的源码,很多都是标准的,当然可以直接用。但是在你的产品上也许优化一下更好。比如我们可以把摄像头驱动和DMA驱动揉合起来,让摄像头的数据直接通过DMA发到DSP去。&br&&br&我们可以在软件和硬件之间起桥梁作用,对于实体产品,有可能是软件出问题也可能是硬件出问题,一般是底层系统工程师比较容易找出问题。&br&&br&当硬件、软件应用出现问题,他们解决不了时,从底层软件角度给他们出主意,给他们提供工具。&br&再比如方案选择:芯片性能能否达标、可用的BSP是否完善等等,这只能由负责整个方案的人来考虑,他必须懂底层。&br&在操作系统领域,对知识的要求很多:&br&① 懂硬件知识才能看懂电路图&br&② 英文好会看芯片手册&br&③ 有编写、移植驱动程序的能力&br&④ 对操作系统本身有一定的理解,才能解决各类疑难问题&br&⑤ 理解Android内部机制&br&⑥ 懂汇编、C语言、C++、JAVA&br&&br&它绝对是一个大坑,没有兴趣、没有毅力的人慎选。&br&① 这行的入门,绝对需要半年以上,即使全天学习也要半年。&br&② 它的职位,绝对比APP的职位少&br&③ 并且你没有1、2年经验,招你到公司后一开始你做的还是APP。&br&&br&优点就是:&br&① 学好后,行业通杀,想换行就换行;想自己做产品就自己做产品。&br&② 相比做应用程序的人,不会被经常变动的需求搞得天天加班。&br&③ 门槛高,当然薪水相对就高。&br&操作系统领域,我认为适合于这些人:&br&① 硬件工程师想转软件工程师,从底层软件入门会比较好&br&② 单片机工程师,想升级一下。会Linux底层的人肯定会单片机,会单片机的人不一定会Linux。&br&③ 时间充足的学生:如果你正读大二大三,那么花上半年学习嵌入式Linux底层多有益处。&br&④ 想掌握整个系统的人,比如你正在公司里写APP,但是想升为系统工程师,那么底层不得不学。&br&⑤ 想自己创业做实体产品的工程师,你有钱的话什么技术都不用学,但是如果没钱又想做产品,那么Linux底层不得不学。&br&⑥ 做Linux APP的人,没错,他们也要学习。&br&这部分人不需要深入,了解个大概就可以:bootloader是用来启动内核,Linux的文件系统(第1个程序是什么、做什么、各目录干嘛用)、APP跟驱动程序的调用关系、工具链,有这些概念就可以了&br&&br&本文中,就把操作系统默认为Linux,讲讲怎么学习嵌入式Linux+Android系统。&br&&br&1.4 嵌入式Linux+Android系统包含哪些内容&br&嵌入式Linux系统包含哪些东西?不要急,举一个例子你就知道了。&br&① 电脑一开机,那些界面是谁显示的?&br&是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它。&br&类似的,这个BIOS对应于嵌入式Linux里的bootloader。这个bootloader要去Flash上读入Linux内核,并启动它。&br&&br&② 启动windows的目的是什么?&br&当然运行应用程序以便上网、聊天什么的了。&br&这些上网程序、聊天程序在哪?&br&在C盘、D盘上。&br&所以,windows要先识别出C盘、D盘。在Linux下我们称之为根文件系统。&br&&br&③ windows能识别出C盘、D盘,那么肯定有读写硬盘的能力。&br&这个能力我们称之为驱动程序。当然不仅仅是操作硬盘,还有网卡、USB等等其他硬件。&br&嵌入式Linux能从Flash上读出并执行应用程序,肯定也得有Flash的驱动程序啊,当然也不仅仅是Flash。&br&简单地说,嵌入式LINUX系统里含有bootloader、内核、驱动程序、根文件系统、应用程序这5大块。而应用程序,我们又可以分为:C/C++、Android。&br&所以,嵌入式Linux+Android系统包含以下6部分内容:&br&① bootloader&br&② Linux内核&br&③ 驱动程序&br&④ 使用C/C++编写的应用程序&br&⑤ Android系统本身&br&⑥ Android应用程序&br&&br&Android跟Linux的联系实在太大了,它的应用是如此广泛,学习了Linux之后没有理由停下来不学习Android。在大多数智能设备中,运行的是Linux操作系统;它上面要么安装有Android,要么可以跟Android手机互联。现在,Linux+Android已成标配。&br&&br&2. 怎么学习嵌入式Linux操作系统&br&本文假设您是零基础,以实用为主,用最快的时间让你入门;后面也会附上想深入学习时可以参考的资料。&br&&br&在实际工作中,我们从事的是“操作系统”周边的开发,并不会太深入学习、修改操作系统本身。&br&① 操作系统具有进程管理、存储管理、文件管理和设备管理等功能,这些核心功能非常稳定可靠,基本上不需要我们修改代码。我们只需要针对自己的硬件完善驱动程序&br&② 学习驱动时必定会涉及其他知识,比如存储管理、进程调度。当你深入理解了驱动程序后,也会加深对操作系统其他部分的理解&br&③ Linux内核中大部分代码都是设备驱动程序,可以认为Linux内核由各类驱动构成&br&但是,要成为该领域的高手,一定要深入理解Linux操作系统本身,要去研读它的源代码。&br&&br&在忙完工作,闲暇之余,可以看看这些书:&br&① 赵炯的《linux内核完全注释》,这本比较薄,推荐这本。他后来又出了《Linux 内核完全剖析》,太厚了,搞不好看了后面就忘记前面了。&br&② 毛德操、胡希明的《LINUX核心源代码情景分析》,此书分上下册,巨厚无比。当作字典看即可:想深入理解某方面的知识,就去看某章节。&br&③ 其他好书还有很多,我没怎么看,没有更多建议&br&&br&基于快速入门,上手工作的目的,您先不用看上面的书,先按本文学习。&br&&br&2.2 学习驱动程序之前的基础知识2.2.1 C语言&br&只要是理工科专业的,似乎都会教C语言。我见过很多C语言考试90、100分的,一上机就傻了,我怀疑他们都没在电脑上写过程序。&br&理论再好,没有实践不能干活的话,公司招你去干嘛?&br&反过来,实践出真知,学习C语言,必须练练练、写写写!&br&当你掌握基本语法后,就可以在电脑上练习一些C语言习题了;&br&当你写过几个C程序后,就可以进入下一阶段的裸机开发了。&br&① 不需要太深入&br&作为快速入门,只要你会编写“Hello, world!”,会写冒泡排序,会一些基础的语法操作,暂时就够了。&br&指针操作是重点,多练习;&br&不需要去学习过多的数据结构知识,只需要掌握链表操作,其他不用学习,比如:队列、二叉树等等都不用学;&br&不需要去学习任何的函数使用,比如文件操作、多线程编程、网络编程等等;&br&这些知识,在编写Linux应用程序时会用,但是在操作系统特别是驱动学习时,用不着!&br&永往直前吧,以后碰到不懂的C语言问题,我们再回过头来学习。&br&在后续的“裸机开发”中,会让你继续练习C语言,那会更实战化。&br&&br&C语言是在写代码中精进的。&br&② 可以在Visual Studio下学习,也可以在Linux下学习,后者需要掌握一些编译命令&br&我们暂时没有提供C语言的教程,找一本C语言书,网上找找免费的C语言视频(主要看怎么搭建环境),就可以自学了。&br&&br&2.2.2 PC Linux基本操作:&br&对于PC Linux,我们推荐使用Ubuntu,在它上面安装软件非常简便。&br&我们的工作模式通常是这样:在Windows下阅读、编写代码,然后把代码上传到PC Linux去编译。&br&实际上,Ubuntu的桌面系统已经很好用了,我们拿到各种智能机可以很快上手,相信Ubuntu的桌面系统也可以让你很快上手。&br&&br&为了提高工作效率,我们通常使用命令行来操作Ubuntu。&br&不用担心,你前期只需要掌握这几条命令就可以了,它们是如此简单,我干脆列出它们:&br&① cd : Change Directory(改变目录)&br&cd 目录名 // 进入某个目录&br&cd .. // cd “两个点”:返回上一级目录&br&cd - // cd “短横”:返回上一次所在目录&br&&br&② pwd : Print Work Directory(打印当前目录 显示出当前工作目录的绝对路径)&br&&br&③ mkdir : Make Directory(创建目录)&br&mkdir abc // 创建文件夹abc&br&mkdir -p a/b/c // 创建文件夹a,再a下创建文件夹b,再在b下创建文件夹c&br&&br&④ rm : Remove(删除目录或文件)&br&rm file // 删除名为file的文件&br&rm -rf dir // 删除名为dir的目录&br&&br&⑤ ls : List(列出目录内容)&br&&br&⑥ mount : 挂载&br&mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mnt&br&mount -t yaffs /dev/mtdblock3 /mnt&br&&br&⑦ chown : Change owner(改变文件的属主,即拥有者)&br&chown book:book /work -R // 对/work目录及其下所有内容,属主改为book用户,组改为book&br&&br&⑧ chmod : Change mode(改变权限),下面的例子很简单粗暴&br&chmod 777 /work -R // 对/work目录及其下所有内容,权限改为可读、可写、可执行&br&&br&⑨ vi : Linux下最常用的编辑命令,使用稍微复杂,请自己搜索用法。&br&要练习这些命令,你可以进入Ubuntu桌面系统后,打开终端输入那些命令;或是用SecureCRT、putty等工具远程登录Ubuntu后练习。&br&&br&2.2.3 硬件知识&br&我们学习硬件知识的目的在于能看懂原理图,看懂通信协议,看懂芯片手册;不求能设计原理图,更不求能设计电路板。&br&对于正统的方法,你应该这样学习:&br&① 学习《微机原理》,理解一个计算机的组成及各个部件的交互原理。&br&② 学习《数字电路》,理解各种门电路的原理及使用,还可以掌握一些逻辑运算(与、或等)。&br&③ 《模拟电路》?好吧,这个不用学,至少我在工作中基本用不到它,现在全忘光了。&br&就我个人经验来说,这些课程是有用的,但是:&br&① 原理有用,实战性不强。&br&比如《微机原理》是基于x86系统,跟ARM板子有很大差别,当然原理相通。&br&我是在接触嵌入式编程后,才理解了这些课程。&br&② 每本书都那么厚,内容都很多,学习时间过长,自学有难度。&br&&br&针对这些校园教材的不足,并结合实际开发过程中要用到的知识点,我们推出了《学前班_怎么看原理图》的系列视频:&br&学前班第1课第1节_怎么看原理图之GPIO和门电路.wmv&br&学前班第1课第2.1节_怎么看原理图之协议类接口之UART.wmv&br&学前班第1课第2.2节_怎么看原理图之协议类接口之I2C.wmv&br&学前班第1课第2.3节_怎么看原理图之协议类接口之SPI.wmv&br&学前班第1课第2.4节_怎么看原理图之协议类接口之NAND Flash.wmv&br&学前班第1课第2.5节_怎么看原理图之协议类接口之LCD.wmv&br&学前班第1课第3节_怎么看原理图之内存类接口.wmv&br&学前班第1课第4.1节_怎么看原理图之分析S3C2410开发板.wmv&br&学前班第1课第4.2节_怎么看原理图之分析S3C2440开发板.wmv&br&学前班第1课第4.3节_怎么看原理图之分析S3C6410开发板.wmv&br&即使你只具备初中物理课的电路知识,我也希望能通过这些视频,让你可以看懂原理图,理解一些常见的通信协议;如果你想掌握更多的硬件知识,这些视频也可以起个索引作用,让你知道缺乏什么知识。&br&这些视频所讲到的硬件知识,将在《裸板开发》系列视频中用到,到时可以相互对照着看,加深理解。&br&&br&2.2.4 要不要专门学习Windows下的单片机开发&br&很多学校都开通了单片机的课程,很多人都是从51单片机、AVR单片机,现在比较新的STM32单片机开始接触嵌入式领域,并且使用Windows下的开发软件,比如keil、MDK等。&br&问题来了,要不要专门学习Windows下的单片机开发?&br&① 如果这是你们专业的必修课,那就学吧&br&② 如果你的专业跟单片机密切相关,比如机械控制等,那就学吧&br&③ 如果你只是想从单片机入门,然后学习更广阔的嵌入式Linux,那么放弃在Windows下学习单片机吧!&br&&br&理由如下:&br&① Windows下的单片机学习,深度不够&br&Windows下有很好的图形界面单片机开发软件,比如keil、MDK等。&br&它们封装了很多技术细节,比如:&br&你只会从main函数开始编写代码,却不知道上电后第1条代码是怎么执行的;&br&你可以编写中断处理函数,但是却不知道它是怎么被调用的;&br&你不知道程序怎么从Flash上被读入内存;&br&也不知道内存是怎么划分使用的,不知道栈在哪、堆在哪;&br&当你想裁剪程序降低对Flash、内存的使用时,你无从下手;&br&当你新建一个文件时,它被自动加入到工程里,但是其中的机理你完全不懂;&br&等等等。&br&&br&② 基于ARM+Linux裸机学习,可以学得更深,并且更贴合后续的Linux学习。&br&实际上它就是Linux下的单片机学习,只是一切更加原始:所有的代码需要你自己来编写;哪些文件加入工程,需要你自己来管理。&br&在工作中,我们当然倾向于使用Windows下更便利的工具,但是在学习阶段,我们更想学习到程序的本质。&br&&br&一切从零编写代码、管理代码,可以让我们学习到更多知识:&br&你需要了解芯片的上电启动过程,知道第1条代码如何运行;&br&你需要掌握怎么把程序从Flash上读入内存;&br&需要理解内存怎么规划使用,比如栈在哪,堆在哪;&br&需要理解代码重定位;&br&需要知道中断发生后,软硬件怎么保护现场、跳到中断入口、调用中断程序、恢复现场;&br&你会知道,main函数不是我们编写的第1个函数;&br&你会知道,芯片从上电开始,程序是怎么被搬运执行的;&br&你会知道,函数调用过程中,参数是如何传递的;&br&你会知道,中断发生时,每一个寄存器的值都要小心对待;&br&等等等。&br&&br&你掌握了ARM+Linux的裸机开发,再回去看Windows下的单片机开发,会惊呼:怎么那么简单!并且你会完全明白这些工具没有向你展示的技术细节。&br&驱动程序=Linux驱动程序软件框架+ARM开发板硬件操作,我们可以从简单的裸机开发入手,先掌握硬件操作,并且还可以:&br&① 掌握如何在PC Linux下编译程序、把程序烧录到板子上并运行它&br&② 为学习bootloader打基础:掌握了各种硬件操作后,后面一组合就是一个bootloader&br&&br&2.2.5 为什么选择ARM9 S3C2440开发板,而不是其他性能更好的?&br&有一个错误的概念:S3C2440过时了、ARM9过时了。&br&这是不对的,如果你是软件工程师,无论是ARM9、ARM11、A8还是A9,对我们来说是没有差别的。&br&&br&一款芯片,上面有CPU,还有众多的片上设备(比如UART、USB、LCD控制器)。我们写程序时,并不涉及CPU,只是去操作那些片上设备。&br&所以:差别在于片上设备,不在于CPU核;差别在于寄存器操作不一样。&br&因为我们写驱动并不涉及CPU的核心,只是操作CPU之外的设备,只是读写这些设备的寄存器。&br&之所以推荐S3C2440,是因为它的Linux学习资料最丰富,并有配套的第1、2期视频。&br&&br&2.2.6 怎么学习ARM+Linux的裸机开发&br&学习裸机开发的目的有两个:&br&① 掌握裸机程序的结构,为后续的u-boot作准备&br&② 练习硬件知识,即:怎么看原理图、芯片手册,怎么写代码来操作硬件&br&后面的u-boot可以认为是裸机程序的集合,我们在裸机开发中逐个掌握各个部件,再集合起来就可以得到一个u-boot了。&br&后续的驱动开发,也涉及硬件操作,你可以在裸机开发中学习硬件知识。&br&&br&注意:如果你并不关心裸机的程序结构,不关心bootloader的实现,这部分是可以先略过的。在后面的驱动视频中,我们也会重新讲解所涉及的硬件知识。&br&推荐两本书:杜春蕾的《ARM体系结构与编程》,韦东山的《嵌入式Linux应用开发完全手册》。后者也许是国内第1本涉及在PC Linux环境下开发的ARM裸机程序的书,如果我说错了,请原谅我书读得少。&br&&br&对于裸机开发,我们提供有2部分视频:&br&① 环境搭建&br&第0课第1节_刚接触开发板之接口接线.wmv&br&第0课第2节_刚接触开发板之烧写裸板程序.wmv&br&第0课第3节_刚接触开发板之重烧整个系统.wmv&br&第0课第4节_刚接触开发板之使用vmwae和预先做好的ubuntu.wmv&br&第0课第5节_刚接触开发板之u-boot打补丁编译使用及建sourceinsight工程.wmv&br&第0课第6节_刚接触开发板之内核u-boot打补丁编译使用及建sourceinsight工程.wmv&br&第0课第7节_刚接触开发板之制作根文件系统及初试驱动.wmv&br&第0课第8节_在TQ2440,MINI2440上搭建视频所用系统.wmv&br&第0课第9节_win7下不能使用dnw烧写的替代方法.wmv&br&&br&② 裸机程序开发&br&第1课 环境搭建及工具、概念介绍.wmv&br&第2课 GPIO实验.wmv&br&第3课 存储管理器实验.wmv&br&第4课 MMU实验.wmv&br&第5课 NAND FLASH控制器.wmv&br&第6课 中断控制器.wmv&br&第7课 系统时钟和UART实验.wmv&br&第8课 LCD实验.wmv&br&&br&要声明的是:&br&录制上述《裸机程序开发》视频时,本意是结合《嵌入式Linux应用开发完全手册》的《第2篇 ARM9嵌入式系统基础实例篇》来讲解,所以视频里没有完全从零编写代码,需要结合书本来学习。&br&① 书和视频并不是完全配套的,不要照搬,其中的差异并不难解决。&br&《嵌入式Linux应用开发完全手册》发表于2008年,使用了很多款开发板,并且那时的开发板配置较低(Nand Flash是64M);&br&《裸机程序开发》视频使用JZ2440开发板录制。&br&② 书和视频,适用于所有S3C2440开发板,包括mini2440、tq2440等&br&天下S3C2440配置都是相似的,基本也就是LED、按键所用引脚不同,LCD型号不同;你学习了书、视频,如果连这些差异都搞不定的话,那就是你我的失败了。&br&学习方法是这样的:&br&① 先看《环境搭建》视频来搭建开发环境&br&② 书(第2篇)和视频(裸机程序开发)结合,看完一章,练习一章&br&一定要编写代码,即使是照抄也要写。&br&③ 如果对于ARM架构相关的知识,觉得模糊或是想了解得更深入,参考《ARM体系结构与编程》&br&学习程度:&br&① 理解一个裸机程序的必要结构:异常向量、硬件初始化、代码重定位、栈&br&② 知道如何操作GPIO、Flash、LCD、触摸屏等硬件&br&③ 很多人觉得MMU难以理解,可以放过它&br&&br&2.2.7 bootloader的学习&br&bootloader有很多种,vivi、u-boot等等,最常用的是u-boot。&br&u-boot功能强大、源码比较多,对于编程经验不丰富、阅读代码经验不丰富的人,一开始可能会觉得难以掌握。&br&但是,u-boot的主要功能就是:启动内核。它涉及:读取内核到内存、设置启动参数、启动内核。按照这个主线,我们尝试自己从零编写一个bootloader,这个程序相对简单,可以让我们快速理解u-boot主要功能的实现。&br&从零编写bootloader的视频有:&br&毕业班第1课第1.1节_自己写bootloader之编写第1阶段.wmv&br&毕业班第1课第1.2节_自己写bootloader之编写第2阶段.wmv&br&毕业班第1课第2节_自己写bootloader之编译测试.wmv&br&毕业班第1课第3节_自己写bootloader之改进.wmv&br&分析u-boot 1.1.6的视频有:&br&第9课第1节 u-boot分析之编译体验.wmv&br&第9课第2节 u-boot分析之Makefile结构分析.wmv&br&第9课第3节 u-boot分析之源码第1阶段.wmv&br&第9课第3节 u-boot分析之源码第2阶段.wmv&br&第9课第4节 u-boot分析之u-boot命令实现.wmv&br&第9课第5节 u-boot分析_uboot启动内核.wmv&br&移植一个全新u-boot的视频有:&br&毕业班第2课第1节_移植最新u-boot之初试.wmv&br&毕业班第2课第2.1节_移植最新u-boot之分析启动过程之概述.wmv&br&毕业班第2课第2.2节_移植最新u-boot之分析启动过程之内存分布.wmv&br&毕业班第2课第2.3节_移植最新u-boot之分析启动过程之重定位.wmv&br&毕业班第2课第3.1节_移植最新u-boot之修改代码之建新板_时钟_SDRAM_UART.wmv&br&毕业班第2课第3.2节_移植最新u-boot之修改代码支持NAND启动.wmv&br&毕业班第2课第3.3节_移植最新u-boot之修改代码支持NorFlash.wmv&br&毕业班第2课第3.4节_移植最新u-boot之修改代码支持NandFlash.wmv&br&毕业班第2课第3.5节_移植最新u-boot之修改代码支持DM9000网卡.wmv&br&毕业班第2课第4.1节_移植最新u-boot之裁剪和修改默认参数.wmv&br&毕业班第2课第4.2节_移植最新u-boot支持烧写yaffs映象及制作补丁.wmv&br&&br&《嵌入式Linux应用开发完全手册》上对u-boot的讲解有如下章节:&br&15.1 Bootloader简介&br&15.1.1 Bootloader的概念&br&15.1.2 Bootloader的结构和启动过程&br&15.1.3 常用Bootloader介绍&br&15.2 U-Boot分析与移植&br&15.2.1 U-Boot工程简介&br&15.2.2 U-Boot源码结构&br&15.2.3 U-Boot的配置、编译、连接过程&br&15.2.4 U-Boot的启动过程源码分析&br&15.2.5 U-Boot的移植&br&15.2.6 U-Boot的常用命令&br&15.2.7 使用U-Boot来执行程序&br&&br&学习方法如下:&br&① 先学习《从零编写bootloader的视频》,这可以从最少的代码理解bootloader的主要功能&br&② 再看书上对u-boot的讲解,并结合《分析u-boot 1.1.6的视频》来理解&br&③ 最后,有时间有兴趣的话,看《移植一个全新u-boot的视频》,这不是必须的。&br&学习程度:&br&① 理解u-boot的启动过程,特别是u-boot代码重定位:怎么从Flash上把自己读入内存&br&② 理解u-boot的核心:命令&br&③ 知道bootloader如何给内核传递参数&br&④ 知道bootloader是根据“bootcmd”指定的命令启动内核&br&⑤ 作为入门:只求理解,不要求能移植u-boot&br&&br&2.2.8 Linux内核的学习&br&前面说过,内核本身不是我们学习的重点,但是了解一下内核的启动过程,还是很有必要的:工作中有可能要修改内核以适配硬件,掌握了启动过程才知道去修改哪些文件。&br&分析内核的视频有:&br&第10课第1节 内核启动流程分析之编译体验.wmv&br&第10课第2节 内核启动流程分析之配置.wmv&br&第10课第3节 内核启动流程分析之Makefile.wmv&br&第10课第4节 内核启动流程分析之内核启动.wmv&br&移植内核的视频有:&br&毕业班第3课第1节_移植3.4.2内核之框架介绍及简单修改.wmv&br&毕业班第3课第2节_移植3.4.2内核之修改分区及制作根文件系统.wmv&br&毕业班第3课第3节_移植3.4.2内核之支持yaffs文件系统.wmv&br&毕业班第3课第4节_移植3.4.2内核之裁剪及ECC简介及制作补丁.wmv&br&&br&《嵌入式Linux应用开发完全手册》上对内核的讲解有如下章节:&br&16.1 Linux版本及特点&br&16.2 Linux移植准备&br&16.2.1 获取内核源码&br&16.2.2 内核源码结构及Makefile分析&br&16.2.3 内核的Kconfig分析&br&16.2.4 Linux内核配置选项&br&16.3 Linux内核移植&br&16.3.1 Linux内核启动过程概述&br&16.3.2 修改内核以支持S3C0开发板&br&16.3.3 修改MTD分区&br&16.3.4 移植YAFFS文件系统&br&16.3.5 编译、烧写、启动内核&br&&br&学习方法如下:&br&① 先看书,并结合《分析内核的视频》进行理解&br&② 如果有兴趣,再根据《移植内核的视频》自己掌握移植内核,这不是必须的&br&学习程度:&br&① 知道机器ID的作用,根据机器ID找到单板对应的文件&br&② 知道Makefile、Kconfig的作用,知道怎么简单地配置内核&br&③ 知道怎么修改分区&br&④ 作为入门:只求理解,不要求能移植&br&&br&2.2.9 根文件系统&br&在驱动程序开发阶段,我们喜欢搭建一个最小根文件系统来调试驱动;&br&在开发应用程序时,也需要搭建文件系统,把各种库、配置文件放进去;&br&在发布产品时,你还需要修改配置文件,使得产品可以自动运行程序;&br&甚至你想实现插上U盘后自动启动某个程序,这也要要修改配置文件;&br&这一切,都需要你理解根文件系统的构成,理解内核启动后是根据什么配置文件来启动哪些应用程序。&br&&br&分析根文件系统的视频有:&br&第11课第1节 构建根文件系统之启动第1个程序.wmv&br&第11课第2节 构建根文件系统之init进程分析.wmv&br&第11课第3节 构建根文件系统之busybox.wmv&br&第11课第4节 构建根文件系统之构建根文件系统.wmv&br&&br&《嵌入式Linux应用开发完全手册》上对文件系统的讲解有如下章节:&br&17.1 Linux文件系统概述&br&17.1.1 Linux文件系统的特点&br&17.1.2 Linux根文件系统目录结构&br&17.1.3 Linux文件属性介绍&br&17.2 移植Busybox&br&17.2.1 Busybox概述&br&17.2.2 init进程介绍及用户程序启动过程&br&17.2.3 编译/安装Busybox&br&17.3 使用glibc库&br&17.3.1 glibc库的组成&br&17.3.2 安装glibc库&br&17.4 构建根文件系统&br&17.4.1 构建etc目录&br&17.4.2 构建dev目录&br&17.4.3 构建其他目录&br&17.4.4 制作/使用yaffs文件系统映象文件&br&17.4.5 制作/使用jffs2文件系统映象文件&br&&br&学习方法:结合书和视频学习。&br&学习程序:&br&① 理解配置文件的作用&br&② 知道根文件系统中lib里的文件来自哪里&br&③ 可以制作、烧写文件系统映象文件&br&2.3 驱动程序的学习&br&《嵌入式Linux应用开发完全手册》对驱动程序的讲解不多,我们推出的“韦东山Linux视频第2期_驱动现场编写调试”,可以认为完全脱离了书本。&br&所以,驱动程序的学习完全按照视频来就可以了。&br&第2期的视频,对每一个驱动,先讲解硬件原理,然后从零写代码,从简单到复杂,逐渐完善它的功能。&br&我们不会罗列专业术语,会参考日常生活的例子,力争用最形象的比喻让你轻松入门,同时又会很深入。&br&&br&注意:我们可以让你入门时很轻松,但是要深入理解的话,这需要你跟着视频练习代码,这是个要慢慢思考的过程,不会轻松。&br&&br&轻松的话,凭什么拿高工资?&br&再次申明:即使照抄也要写代码!很多人视频看得很高兴,但是写代码时就傻了。&br&&br&2.3.1 经典字符设备驱动程序&br&视频中以LED、按键驱动为例,讲解并练习开发过程中碰到的机制:查询、休眠-唤醒、中断、异步通知、poll、同步、互斥等等。&br&后续更复杂的驱动程序,就是在这些机制的基础上,根据硬件特性设计出精巧的软件框架。&br&相关的视频有(文件名中带“_P”的属于第2期加密视频):&br&第12课第1节 字符设备驱动程序之概念介绍.wmv&br&第12课第2.1节 字符设备驱动程序之LED驱动程序_编写编译.wmv&br&第12课第2.2节 字符设备驱动程序之LED驱动程序_测试改进.wmv&br&第12课第2.3节 字符设备驱动程序之LED驱动程序_操作LED.wmv&br&第12课第3节 字符设备驱动程序之查询方式的按键驱动程序.wmv&br&第12课第4.1节 字符设备驱动程序之中断方式的按键驱动_Linux异常处理结构.wmv&br&第12课第4.2节 字符设备驱动程序之中断方式的按键驱动_Linux中断处理结构.wmv&br&第12课第4.3节 字符设备驱动程序之中断方式的按键驱动_编写代码.wmv&br&第12课第5节 字符设备驱动程序之poll机制.wmv&br&第12课第6节 字符设备驱动程序之异步通知.wmv&br&第12课第7节 字符设备驱动程序之同步互斥阻塞.wmv&br&第12课第8节 字符设备驱动程序之定时器防抖动_P.wmv&br&第13课第1节 输入子系统概念介绍_P.wmv&br&第13课第2节 输入子系统第编写驱动程序_P.wmv&br&&br&《嵌入式Linux应用开发完全手册》上对字符设备驱动程序的讲解有如下章节:&br&第19章 字符设备驱动程序&br&19.1 Linux驱动程序开发概述&br&19.1.1 应用程序、库、内核、驱动程序的关系&br&19.1.2 Linux驱动程序的分类和开发步骤&br&19.1.3 驱动程序的加载和卸载&br&19.2 字符设备驱动程序开发&br&19.2.1 字符设备驱动程序中重要的数据结构和函数&br&19.2.2 LED驱动程序源码分析&br&第20章 Linux异常处理体系结构&br&20.1 Linux异常处理体系结构概述&br&20.1.1 Linux异常处理的层次结构&br&20.1.2 常见的异常&br&20.2 Linux中断处理体系结构&br&20.2.1 中断处理体系结构的初始化&br&20.2.2 用户注册中断处理函数的过程&br&20.2.3 中断的处理过程&br&20.2.4 卸载中断处理函数&br&20.3 使用中断的驱动程序示例&br&20.3.1 按键驱动程序源码分析&br&20.3.2 测试程序情景分析&br&&br&学习方法:&br&① 沿着数据流向,从应用程序的对驱动程序的使用进行情景分析。&br&所谓情景分析,就是假设应用程序发起某个操作,你去分析其中的运作过程。比如应程序调用open、read、ioctl等操作时涉及驱动的哪些函数调用。&br&你要思考一个问题:一个应用程序,怎么获得按键信息,怎么去控制LED。把其中数据的流向弄清楚了,对字符驱动程序也就基本理解了。&br&② 学习异常和中断时,可以结合书和视频;对于驱动程序中其他内容的学习,可以不看书。&br&&br&2.3.2 工作中各类驱动程序&br&我们的视频中讲解的驱动程序非常多,目的有二:&br&① 在你工作中遇到同类驱动时提供借鉴&br&② 供你学习、练习,煅炼阅读驱动程序的“语感”,提升编写程序的能力,增加调试经验&br&我们还打算扩充驱动视频,把它打造成“Linux驱动程序大全”视频,基本上都会采取从零现场编写的方式。&br&也许有人说:在工作中我们基本上只是移植、修改驱动而已,很少从头编写。这话没错,但是能修改的前提是理解;想更好地理解,最好的方法是从零写一个出来。在学习阶段,不要怕耗费太多时间,从零开始编写,慢慢完善它,在这过程中你既理解了这个驱动,也煅炼了能力,做到触类旁通。&br&如果有时间,建议你学完这些所有的视频,直到你自认为:&br&① 给你一个新板,你可以很快实现相关驱动&br&② 给你一个新硬件,你可以很快给它编写/移植驱动。&br&我们录制的视频很多,下面只罗列到“课”,不罗列到“节”。&br&第2期视频:&br&第14课 驱动程序分层分离概念_总线驱动设备模型&br&第15课 LCD驱动程序&br&第16课 触摸屏驱动程序&br&第17课 USB驱动程序&br&第18课 块设备驱动程序&br&第19课 NAND FLASH驱动程序&br&第20课 NOR FLASH驱动程序&br&第21课 网卡驱动程序&br&第22课 移植DM9000C驱动程序&br&第23课 I2C设备裸板程序&br&第24课 I2C驱动程序 (不看此课,看第32课,第32课讲得更好)&br&第26课 声卡驱动程序 (不看此课,看第3期的ALSA驱动,那讲得更好)&br&第27课 DMA驱动程序&br&第28课 hotplug_uevent机制&br&第32课 3.4.2内核下的I2C驱动程序&br&第3期的驱动视频:&br&摄像头驱动_虚拟驱动vivi&br&摄像头驱动_USB摄像头&br&摄像头驱动_CMOS摄像头&br&WIFI网卡驱动程序移植&br&3G网卡驱动程序移植&br&ALSA声卡驱动程序&br&&br&学习方法:&br&① 再次强调,不能光看不练:一定要写程序,即使照抄也得写&br&② 必学:LCD、触摸屏、NAND Flash、Nor Flash、hotplug_uevent机制&br&③ 学完之后,强烈建议换一个不同的开发板,尝试在新板上写驱动程序。&br&按视频学习会一切顺利,很多问题你可能没想到、没想通,换一个新板会让你真正掌握。&br&&br&2.3.3 调试方法&br&有一种说法,程序是三分写七分调,我们从操作系统的角度提供了一些很有用的调试方法。&br&相关的视频有:&br&第29课第1节_裸板调试之点灯法_P.wmv&br&第29课第2节_裸板调试之串口打印及栈初步分析_P.wmv&br&第29课第3.1节_裸板调试之JTAG原理_P.wmv&br&第29课第3.2节_裸板调试之JTAG调试体验_P.wmv&br&第29课第3.3节_裸板调试之JTAG调试命令行调试_P.wmv&br&第29课第3.4节_裸板调试之JTAG调试源码级调试_P.wmv&br&第30课第1.1节_驱动调试之printk的原理_P.wmv&br&第30课第1.2节_驱动调试之printk的使用_P.wmv&br&第30课第1.3节_驱动调试之打印到proc虚拟文件_P.wmv&br&第30课第2.1节_驱动调试之段错误分析_根据pc值确定出错的代码位置_P.wmv&br&第30课第2.2节_驱动调试之段错误分析_根据栈信息确定函数调用过程_P.wmv&br&第30课第3节_驱动调试之自制工具_寄存器编辑器_P.wmv&br&第30课第4节_驱动调试之修改系统时钟中断定位系统僵死问题_P.wmv&br&第31课第1节_应用调试之使用strace命令跟踪系统调用_P.wmv&br&第31课第2节_应用调试之使用gdb和gdbserver_P.wmv&br&第31课第3节_配置修改内核打印用户态段错误信息_P.wmv&br&第31课第4.1节_应用调试之自制系统调用_P.wmv&br&第31课第4.2节_应用调试之使用自制的系统调用_P.wmv&br&第31课第5.1节_应用调试之输入模拟器之设计思路_P.wmv&br&第31课第5.2节_应用调试之输入模拟器之编写保存功能_P.wmv&br&第31课第5.3节_应用调试之输入模拟器之编写测试模拟功能_P.wmv&br&&br&2.4 Linux应用程序的学习&br&对于大多数人来说,第1个C程序是在Windows的Visual Studio C++(简称VC)上写的,所以你们关心的也许是:嵌入式Linux应用程序,跟VC应用程序之间的区别:&br&&br&① 编译方法不同:&br&在VC上点点鼠标即可编译,对于嵌入式Linux应用程序,我们需要“交叉编译”:程序要在PC Linux上编译,但是运行时要放到单板上。&br&并且,它的编译环境需要你自己搭建:解压出工具链后设计PATH,还要自己构造一套Makefile系统。&br&② 调试方法不同:&br&在VC上点点鼠标就可以调试,对于嵌入式Linux应用程序,你可以更喜欢用打印;或是在PC Linux上通过GDB观察应用程序在单板上的运行状况。&br&&br&③ 可用的资源不同:&br&对于VC程序,你可以直接使用微软公司提供的各种类库;对于嵌入式Linux应用程序,很多时候需要去寻找、下载、编译、使用开源库。&br&&br&④ 功能不同:&br&VC程序运行在PC上,一般是用来解决某些纯软件的问题,比如整理数据、修图、联网播放音乐之类。嵌入式Linux应用程序一般都要操作若干种硬件,比如监控设备中要操作摄像头、存储音视频,无人机中要操作GPS、螺旋桨,POS机中要操作银行卡等等。它跟单板上的硬件联系很大,很多时候需要你懂点硬件知识,至少是知道怎么通过驱动程序来操作这些硬件。&br&&br&上述4点的不同,花很少的时间就可以掌握。&br&如果你有志于开发应用程序,那么一定要有算法、数据结构、网络编程等基础,然后再掌握一些设计模式,最后就是多参加一些实际项目的开发了。&br&基于我们提供的视频,你可以这样学习:&br&&br&① 先掌握第1期讲解的根文件系统:&br&在后续学习中你会经常构建根文件系统,比如往里面添加库、修改配置文件让你的程序自动运行。&br&② 掌握怎么编译、烧写u-boot、内核:&br&在实际工作中,一般来说不需要你去烧写u-boot、内核,但是在自学阶段还是自己掌握吧,免得去麻烦别人。&br&按开发板手册即可操作,你甚至不用管里面的原理。&br&&br&③ 掌握Makefile:&br&可以看如下第3期视频,以后编译程序时只要执行make命令即可:&br&第1课第4节_数码相框_编写通用的Makefile&br&④ 学习第1个项目:数码相框&br&该项目不使用任何开源的GUI项目,完全是自己构建一套GUI系统,实现了文件浏览、文件显示(文本和图片)、图片操作(放大、缩小、自动播放)等功能;涉及网络编程、多线程编程、开源库使用等等。&br&&br&虽然数码相框作为一个产品已经落伍了,但是该项目所涉及的技术,特别是以面向对象的编程思想设计出一个模块化的、易扩展的系统,非常适合没有大型项目开发经验的人。很多同学,都是根据该项目所教会的编程思想找到了心怡的工作。&br&&br&第3期视频取名为“项目开发”,而非“应用开发”,它的第2、3个项目跟内核、驱动耦合很大。如果只关心应用开发,或是急于找一份工作,可以先看第1个项目。&br&第2个项目涉及摄像头、ALSA声卡、WIFI网卡、3G网卡,这些都是在实际工作过程中经常用到的设备,比如我们后面补充的QQ物联就用到摄像头、声卡、WIFI网卡。&br&第3个项目是电源管理,讲解怎么讲你的单板休眠以省电。&br&&br&3. 怎么学习整个Android系统&br&待续.....
嵌入式Linux+Android学习路线图 作者:韦东山 本文目录 1. 程序员的三大方向
1.1 专业领域
1.1.1 学术研究
1.1.2 工程实现
1.2 业务领域
1.2.1 界面显示
1.2.2 业务逻辑
1.3 操作系统领域
1.4 嵌入式Linux+Android系统包含哪些内容
2. 怎么学习嵌…
大学毕业这么多年,一路上在职场,商场中磕磕绊绊,算是取得一些小成就,实际上年轻人踩的坑我是一个不落的几乎都踩过,现在仔细回想一下,如果有人问我“你觉得有什么道理后悔没早点知道呢”?我个人认为恰恰是很多人听过的那句烂大街的大道理,就是:&br&&br&正确的认识自己。&br&&br&在现实生活中,我们关注别人远远的多于关注自己,例如:&br&我的举动会不会被女生讨厌?&br&我这么说话是不是会让同事觉得我比较怪?&br&我跟她交往,父母会不开心吧?&br&&br&有意思的是,我们越来越了解别人,越来越有眼力见,越来越会揣摩人心,越来越会看眼色,但是对于我们自己,确越来越不了解。&br&&br&每年高考之后,填报志愿是一个家庭的头等大事,对于填报志愿这事,跟考公务员一样,大家最后都开心了,只有你自己不开心,因为你不知道你即将入读的专业,具体是怎么回事,你自己是否喜欢,父母只是简单粗暴的从专业是否热门,是否好找工作来作为是否选择这个专业的重要标准,其实这么做倒也符合咱们这个竞争异常激烈的社会,每年毕业那么多的大学生,招聘会场场爆满,更有很多家庭条件不好的学生,把读大学当成改变自己和家庭命运的唯一砝码,等大学毕业后,自然要找薪水高的工作,你喜不喜欢做?这个貌似没几个人考虑过,这几年互联网热,各种的编程培训班也随之大热,大多数人当然是冲着互联网行业的高工资去的,但是貌似极少有人想一想,我适合做那个工作么?我喜欢做那个工作么?我的长处符合这个工作么?&br&&br&我是一个善于观察的人,前些年我产生出了一个想法,就是观察我所认识的人,大学毕业后的职场路径,通过观察别人,更能清楚自己,我发现了两个很有意思的事情:&br&&br&一个人不管初始的工作做的什么行业,最终都会从事他擅长的工作(擅长在这里可以理解为天赋)。&br&&br&一个人如果喜欢(喜欢的前提很大程度上就是因为擅长)他所做的工作,他就有极大的几率做到行业内的优秀者,因为工作对他是享受,而不是煎熬。&br&&br&这两个道理其实不难理解,因为不论你当初是因为什么原因选择的某种职业,天赋和兴趣是你能坚持做下去的主因,相比这两个主因,金钱的吸引力是越来越小的,而且你因为薪资高而去做一个职业,如果你并不擅长,公司也不会养闲人,早晚会把你淘汰出局,强迫你去选择你擅长的职业。&br&&br&我一个高中同学A,大学学的专业是身为土建工程师的老爸给选的土木工程,那个年代这个专业毕业就会被各大建筑公司,房地产公司抢走,根本不愁找工作,A酷爱读书和写作,上高中的时候就经常的给各种杂志投稿,大学毕业后入职了一家国企的建筑公司,在那个普遍月薪不到3000的小城,每月工资能达到6000多,但是工作了两年后,A辞职了,因为他无法忍受常年在外地施工,更要命的是,他发现了一件事,就是他越来越不喜欢自己的工作,因为自己不喜欢,自然没有动力去看专业书籍充电和考资格证,他发现他与跟他毕业的同学在专业技术上的差距越来越大,后来决定辞职去做自己擅长的事情,去了省城的一家出版公司做图书编辑,他策划过几本畅销书籍,目前已经做到了那家出版公司的骨干。&br&&br&我发现这几年我身边的朋友像A这样的越来越多:&br&有辞去投行高薪去加拿大念厨师,毕业留在加拿大的,因为他后来才发现自己不是那么勤奋的人,投行的高压让他喘不过气来,自己相对还是喜欢安逸的环境,对向上冲没那么高的欲望;&br&&br&有从美国辞职回国创业的,相对于美国的职场的稳定,他更喜欢国内的风起云涌,更喜欢做一番自己的事业;&br&&br&有辞去体制内工作30岁大龄去北漂的,相对于体制内稳定但低薪,他更想看看自己的潜能和想赚更高的工资。&br&&br&所以你说,“正确的认识自己”简单么?不简单,如果简单,为什么我这么多的朋友和同学前期走了这么多的弯路,靠着自己磕磕绊绊,弄的浑身是伤,最后才明白这个道理。&br&&br&但是最后明白这个道理的人又是幸运的,因为当你自己明白那一刻,你会觉得:付出这一切都是值得的。&br&&br&如果文章到这里就结束了,估计很多知友会觉得你这只把问题指出来,也不给解决方案,有点太吊人胃口了,其实准确的“认识自己”,还得靠多实践,因为咱们在学校的教育中从来没有学过要如何认识自己,相关方面的教育缺失太多,想捡起来真的得自己多下功夫,有空的时候问问自己:&br&(1)你喜欢的事情是什么?&br&(2)你觉得自己是一个什么性格的人?&br&(3)你喜欢什么样的生活方式?&br&(4)你认为自己做什么样的工作会让自己快乐?&br&(5)你的优点和缺点分别是什么?&br&(6)你认为你自己适合做什样的工作?&br&&br&这些关于你自己的问题,我估计第一次能全答上来的没几个,没关系,咱慢慢来,先能答上哪个就答上哪个,答不上来的就空着,通过出去实习,工作,慢慢的把这些问题写出心里的正确答案,等正确答案都写出来了,再根据这些答案去找符合的工作或生活方式。&br&&br&最后,祝大家早日的认识真实的自己。
大学毕业这么多年,一路上在职场,商场中磕磕绊绊,算是取得一些小成就,实际上年轻人踩的坑我是一个不落的几乎都踩过,现在仔细回想一下,如果有人问我“你觉得有什么道理后悔没早点知道呢”?我个人认为恰恰是很多人听过的那句烂大街的大道理,就是: 正…
卸腰!&br&鉴于你的情况,直白地说,是需要将知识变现。个人以为,编程是将知识变现比较快的一种技能。如果你编程能力还可以,再加上乐于勤奋好学(我相信你现在面临的情况,一定可以做到勤奋努力工作的),而且又有一些图像处理方面的经验,找一份起薪还不错的工作还是有希望的。&br&个人建议,可以多关注一些初创公司,这方面的初创公司目前比较多。你的情况,我觉得应该关注的点是:待遇和锻炼的机会。你也别指望在一家公司干到底,你当前最重要的是锻炼能力,努力工作,当然还有一份配得上你的勤奋,努力,能力的薪资,而不是求稳。&br&明确了自己的目标是什么,接下来就主动出击吧!多去面试,初创公司挺多的,多面几家。初创公司,别被股权/期权忽悠了,当下能拿到口袋才是正道!&br&&br&顺便给你看一下我朋友公司的招人情况,待遇还是很可观的&br&&a href=&///?target=http%3A///center/sharePosition.html%3FuserId%3Dlagoufrom%3Dnoapp%26from%3Dtimeline%26isappinstalled%3D1%26code%3D031k2sGr0H6AMb1atNHr05mrGr0k2sG-%26state%3D%26winzoom%3D1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/center/shareP&/span&&span class=&invisible&&osition.html?userId=5019620&lagoufrom=noapp&from=timeline&isappinstalled=1&code=031k2sGr0H6AMb1atNHr05mrGr0k2sG-&state=&winzoom=1&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
卸腰! 鉴于你的情况,直白地说,是需要将知识变现。个人以为,编程是将知识变现比较快的一种技能。如果你编程能力还可以,再加上乐于勤奋好学(我相信你现在面临的情况,一定可以做到勤奋努力工作的),而且又有一些图像处理方面的经验,找一份起薪还不错…
这个我前两天刚去过 ,
他们说的就是跟你说的一样,先笔试 再复试,当时说的是前三个月3-4-5在天智培训,培训完之后进入公司转正进入威斯登或者周梦,接下来给你三个月6-7-8的接触项目时间,最后从九月份开始每个月交1750块钱,交满一年作为之前培训的费用差不多共2万1,如果在那边工作满三年,返还给你1万7,剩余的四千是银行的利息。然后让你回家考虑商量下,我现在正在处于考虑其间,不知道接下来是怎样的。
这个我前两天刚去过 , 他们说的就是跟你说的一样,先笔试 再复试,当时说的是前三个月3-4-5在天智培训,培训完之后进入公司转正进入威斯登或者周梦,接下来给你三个月6-7-8的接触项目时间,最后从九月份开始每个月交1750块钱,交满一年作为之前培训的费用…
刚好闲逛,看到了,鉴于之前我也学过嵌入式系统这方面的知识,就稍微说下。我大学本科学的就是嵌入式,算是非常火的概念,我也就跟着屁颠屁颠的去学。后来才发现这尼玛是个坑啊。&br&&br&
嵌入式应该算是分两个方向的,偏硬件的、偏软件的,就看自己着重发展那个方面了。硬件方面的就不多说,模电、数电这些是必修的,软件方面linux、C语言、数据结构等等。&br&&br&
我本科学的是偏硬件的,跟着学了两年多的硬件,结果出来了发现硬件很难找工作,非常难,当然也和我本人学的不够牛逼、学校牌子不够硬有很大关系。我只记得我去面试,人家明确说211、985以下非硕士不要,要不就得有工作经验。开始不理解,后来想想也是,就一般的本科教育硬件能学到什么呢,我大学阶段的一个老师说硬件学起来起码得五年才有点成绩。&br&&br&
没办法,只好从软件做起。本科最后一年学校建立了嵌入式实验室,就是那种大的试验箱,做些基本的数码管、电机、MP3播放器还有一些内核方面的小实验。后来为了好好练练自己的水平,自己买了国嵌(一个培训结构)的网络课程(和你发的课程表大致差不多)、买了一块ARM实验版,天天对着电脑学校Linux C编程啊、内核移植啊、bootloader移植啊这些东东。最后的毕业设计就是做了一个MP3播放器程序,从bootloader、内核、播放器程序全是自己参考网上的教程自己修改的。PS,我修改了一部分东西,不是完全照抄的那种。&br&&br&
出来找嵌入式软件工程师的时候又一次的被秒了,问学过数据结构没,算法没,我一个搞硬件的真心没认真学过。做过的那点实验、毕业设计,在他们看来根本都是没啥用处的,毕竟不大可能让你从头去搞内核这些。对大部分公司来说,他们只要求一个合格的码农即可,即你搞定算法、会敲C代码就ok了。现在的嵌入式环境那么方面(硬件配置),语言这块真的不是问题了。所以你会敲代码就好了,我甚至都感觉普通的C软件程序员就可以胜任了。&br&&br&
1.工作机会挺多的,但往往你只能研究一个方面,软件or硬件,再者细分下来有很多的领域的,机顶盒啊、andriod啊、车载设备啊等等&br&
2.薪资: 我没有5000起,最后找了个小公司去写驱动程序,3K +的样子,去年3月份入职。这个和个人实力有很大关系,你要是大牛,那果断是你开薪资了。&br&
3.前景: 应该不错,但前提是好好的练练内功,沉下心来专研。我能说我写了半年的驱动就跳了嘛,我会告诉你我跳了之后悲剧的发现半年的这点驱动开发经验压根没人要嘛。后来感觉驱动开发工程师这方面的岗位实在是太小、方向太狭窄,我就转行干运维了。另外通过智联的招聘也可以看到,驱动开发工程师的岗位真的很少的。最后祝楼主好远。&br&&br&PS:这也是我第一次在知乎写长答案,鉴于本人的嵌入式从业经历很短,回答有一定的错误和误导性,说错的地方请各位大神指出。
刚好闲逛,看到了,鉴于之前我也学过嵌入式系统这方面的知识,就稍微说下。我大学本科学的就是嵌入式,算是非常火的概念,我也就跟着屁颠屁颠的去学。后来才发现这尼玛是个坑啊。 嵌入式应该算是分两个方向的,偏硬件的、偏软件的,就看自己着重发展那个方…
&p&&b&============================================================&/b&&/p&&p&&b&题目为 “本科”毕业生&/b&&/p&&p&
所以结合这个题目再多唠叨一些吧,首先来看这个答案的童鞋,会有一部分处于考研或找工作或出

我要回帖

更多关于 无线ap工作模式 的文章

 

随机推荐