主题 : 韦东山公开课答疑汇总 复制链接 | 浏览器收藏 | 打印
我艹
级别: 新手上路
UID: 104847
精华: 0
发帖: 46
金钱: 235 两
威望: 47 点
贡献值: 0 点
综合积分: 92 分
注册时间: 2014-06-06
最后登录: 2019-06-21
楼主  发表于: 2014-09-09 15:26

 韦东山公开课答疑汇总


后续的公开课请留意论坛
http://www.100ask.org

1,第四期的智能猫眼会有打电话和发短信的功能吗?  
答:会有打电话功能,硬件上支持打电话就会支持发短信,只是软件上是否实现发短信现在未定。因为短信延迟太严重,不是可靠的。


2,请问关于makefile中的很多设置项,像段啊什么的?是什么意思呢?需要深入学习吗? 3  
答:对于裸板才需要我们自己管理“段”,这并不是什么很高深的知识,看过涉及重定位的裸板视频就可以了解清楚了。至于其他设置项,基本上就是编译选项而已。Makefile本身并不复杂,也不应该成为学习的拦路虎:用于裸板的Makefile,它是非常简单的,重点应放在程序的重定位上;对于APP的Makefile,要自己写出一个通用的Makefile需要一定的功底,但是你完全没必要自己写,使用现成的就可以──第3期视频有一个视频专门讲Makefile,并且给出了一个可以直接使用的、通用的Makefile。


3,arm以前写过裸机程序 看实验室同学,都在用stm32开发,我用不用学习STM32,马上要找工作? 3
答:对于长远的发展,我认为不需要再去学习STM32,因为它的就业面相对较窄。如果你是想往Linux方向发展的话,STM32所学到的知识远远少于“把ARM开发板当作单片机的第1期视频”,比如STM32用的都是KEIL、IAR、MDK等集成开发环境,它封装了太多技术细节,我敢肯定你不会了解这些知识:重定位、段、位置无关、异常处理入口等等。我建议你直接学习第1期视频,掌握了第1期视频后,所有的单片机──包括8051、STM32都是简单的。
        但是,如果你马上就要工作,你现在有的知识只是裸板程序的话,我建议你就看看STM32吧,这可以给简历添加点内容。


4,老师,请推荐学驱动的书籍哈,还有学应用的书籍  
答:看看这里:http://wenku.baidu.com/view/848775ece009581b6bd9ebc3.html
对于应用,我认为不应局限于LINUX,因为应用编写的核心技能应该是多操作系统都通用的,比如面向对象着编程思想等。
对于LINUX应用的基础技能,比如怎么打开、读写文件,就看《UNIX环境高级编程》。

5,把uboot放到的位置  这个位置 怎么确定? 怎么详细计算这个具体的地址  
答:一般是把它放到内存的高处,比如S3C2440开发板外接的内存通常是64M,基地址是0x30000000,那么我们把它放到0x30000000+64M-512K=0x33f80000的位置。为何是512K,因为我们认为UBOOT不会太大,不会超过512K。你当然可以认为它不会超过256K……


6,怎么看QT和Android?  
答:我没有经验,但是有良好的C或C++知识的话,一个月即可入门:我的两个同事就是这样的,一个学QT,另一个学android。就是看网络上可以找到的资料。


7,老师,把第二期视频看完理解透彻能达到什么样的水平?  
答:光理解是不行的,如果你不看视频就可以自己写出来,那么完全具备2年工作经验了。这些知识足以让应付Linux底层工作中常见的问题了。注意:要想再上一层楼,只有在工作中不断碰到难题不断去想方设法解决,在这过程中会让你重新煅炼自己的知识体系。


8,lds里面为什么要4字节对齐呢?  
答:比如说一个int变量,如果它的地址不是4字节对齐,假设地址是3那么CPU访问它时就要需要分为2次访问:先访问地址0、1、2、3,再访问地址4、5、6、7,然后把2次读到的数据(地址3、、4、5、6上的数据)凑起来。
        这降低了访问效率:根源是很多外设的访问是以整地址进行的。


9,请老师讲讲链接脚本的问题哈  
答:这个问题是什么问题?:(
        链接脚本不算复杂,希望你能从头看一下第1期视频,结合《嵌入式LINUX应用开发完全手册》一起看。


10,老师,应用是单独讲的吗? 在第几期里面,目前大四。。急!  
答:第3期里讲应用,里面涉及到一些编程思想:面向对象、模块化等;涉及到一些基础知识:比如网络通信。


11,去找工作应该准备些什么?  
答:实实在在的经验。不管你是在校期间做的项目,还是自己学习编程的体会,或是实现中做的项目,一定要有真实的经验。并且在简历上写出来。
        最后,就是在面试时你能讲出自己的经验。


12,作为自学嵌入式Linux, 去找工作时如果没有什么项目经验,应该怎么准备面试? 9
答:没有实际项目经验,就需要你展示自己的技能:学习中碰到的问题怎么解决、有什么印象深刻的解决过程。总之,很多公司并不强求你有项目经验,但是需要考察你的基础知识、学习能力、工作态度:现在有基础知识是否适合该工作,能否通过3个月把你培养起来;你的自学能力如何;你的工作态度怎样,吃苦耐劳──呵,多老的词啊,但是就是需要这样的人。


13,工作中的驱动一般都有哪些?  
答:这个要看具体工作了,我工作中做过的驱动有:
LED、PCI、摄像头、SATA硬盘、LCD等。
        不管是什么驱动,重要的是你的“能力”:给你一个没接触过的驱动,你应该可以把内核中相关的子系统弄清楚,然后移植或是写出这个驱动来。这涉及的知识点(比如休眠唤醒、注册)在第2期里都讲有了,只是你有无能力去分析就要练了。


14,嵌入式工作的最低要求是什么啊?
答:嵌入式工作有很多职位啊,这个最低要求的问题我实在无法回答。
        比如做手机的行业里,有专门做bootloader的,那么你掌握第1期的裸板就可以了;
        再说到做驱动的,需要你掌握第2期;
        如果是应用,我就更无法回答了,但是C、JAVA等技能是要的。
        “最低要求”意味着“最低工资”,也意味着“难找工作”。
        再说一个“最最低要求”:即使你什么都不会,但是如果有全天学习、做梦都是怎么解决学习问题的学习状态话,不出半年你就可以学得很好了。


15,韦老师,而且视频需要几个月时间?  
答:半年时间左右。第1期花1、2个月,第2期花3个月左右,第3期花个2个月吧。
        我说的是全天学习。
        在培训机构里,这些内容他们也是开班半年到1年的。


16,所有视频 一起买 可以给个优惠么?  
答:请联系http://100ask.taobao.com



17,第二期关于调试的内容,作为初学驱动的学生看的作用大吗?  
答:开始时,你只需要用printk就可以了。其他的调试方法,需要你对系统框架有所了解,并且不太用得上──除非碰到特别麻烦的问题。


18,nand 不是要先初始化cpu才能用吗,他是怎么自动拷贝的?  
答:NAND并不需要先初始化,需要初始化的是“nand flash控制器”。自动拷贝是由硬件实现的,或是说芯片内部固化的代码实现的,其实也是厂家写的程序──只不过它是固化在芯片内部了。


19,第一期视频下载地址  
答:www.100ask.org的下载页面有说明


20,学应用应该看第几期视频  
答:如果是练习LINUX下C语言的应用开发的技能,就看第3期;如果是QT、andorid等,我们没有视频。


21,第一期视频好多代码老师都没自己写 是照着讲解  那我们都需要自己写么?  汇编和C语言都需要么?  
答:第1期需要结合《嵌入式LINUX应用开发完全手册》来看。一定要自己写,学习编程不自己写的话,是不可能学好的。
        汇编、C都要自己写,你不想写,那就是懒!


22,现在大三升大四,有一点单片机基础,有C基础,马上要找工作了,要怎么学啊?  
答:马上要找工作的话,这个节点实在是让人为难。LINUX的学习至少需要半年,只有单片机基础的话,单片机的就业市场又太小。如果你有JAVA知识,或是即使没有JAVA知识但是学习能力强,就看看andorid编程吧,它容易入门,并且现在需求大。
        如果能有半年到1年的学习时间,有单片机基础的话倒是适合按第1、2、3期视频的顺序学习。


23,java,C++ 哪个用的多,嵌入式里  
答:就编程方法、技能而言,两者想辅相成,差不多。
        JAVA现在就是因为android的流行才用得多,离开android的话在嵌入式领域它是基本用不着的。
        至于C++,其实用得更不多了,QT里用得多点。
        抛开andorid和QT,在LINUX应用里用得多的编程语言是C。


24, 老师好,请问0基础该如何学习?  
答:你的方向是什么?看这个链接:
作为一个新人,怎样学习嵌入式Linux?
http://wenku.baidu.com/view/848775ece009581b6bd9ebc3.html



25,怎么分配第一期第二期的时间规划?? 大约多长时间每一个  
答:总体来说,第1期花1、2个月时间,尽量在1个月内搞定。
        第2期需要3、4个月时间。
        提醒一句:必须练习、必须写代码,不能光看觉得自己理解就行了。


26,三期视频老师建议用多长时间学习呢?  
答:如果之前没有写过比较大的C程序,我建议用2、3个月来看。
        如果已经有了比较丰富的C技能,用1、2个月。


27,老师,我看新版本的uboot的链接地址都不是写死的,哪一种更好  
答:不写死链接地址的原因:为了适应多种板子。你工作时,肯定是选定了某款板子,那就可以把这个地址定死了。“不写死链接地址”,使得程序过于复杂,我现在看新版UBOOT,就觉得它乱糟糟的。


28,大四有单片机C语言基础 现在刚开始学习嵌入式但感觉时间来不及还望老师指点到底该学神马?        
答:看前面的第22 个问题。


29,电源管理项目什么时候出  
答:已经开始发布了,我想在2、3周、国庆前发布完。


30,发一个视频下载地址  
答:www.100ask.org下载页面,
        也可以在线看第1期的视频:http://u.youku.com/韦东山



31, 毕业班视频在第一期配套光盘上有吗?
答:没有,在第2期的光盘上才有。


32, 找Linux驱动的工作,面试时一般会问些什么问题,该怎么回答?  
答:基本上所有的面试,都会这样问:
一、 你工作中碰到什么问题,怎么解决
二、 假设有某个问题,你的解决思路是怎样
第1个问题是考察你现有的能力,第2个问题是考察你的学习、应变、解决问题的能力。


33,应聘ARM开发工程师都需要哪些知识,linux的内容需要了解多少?
答:以这个为标准:能工作。
        比如对于LINUX底层,你学完了1、2期视频,我现在给你一个新板子,你能否把UBOOT、内核、文件系统搭起来,你能否把第2期里的驱动都写出来?
        对于应用,其实更多考虑的是你的C语言能力,跟是否嵌入式一点关系都没有(因为嵌入式APP开发,跟PC上APP开发所需技能是完全一样的)。




34,据说有些部门有专门做bootloader的,老师知道他们的主要工作吗?  
答:你就参考手机刷机时用到的功能:通过USB连接电脑、读SD卡得到刷机包、刷机、并且在LCD上显示操作菜单,……。大概就是这些事情。



35,韦老师希望能讲下head.s中的物理内存到虚拟内存映射的那段代码  
答:现在没有时间讲,也没有打算讲。这一部分暂时不用去看。


36,head.s中的地址映射是怎么回事,我一直都没搞懂  
答:同上。


37,目前具有C语言和汇编已经单片机基础,请问直接写可以实用的东西应该看第几期或者说着重看哪一些章节   2
答:直接从第9课UBOOT开始往后看吧,第9课是第1期的,12课第8节开始是第2期的。



38,对于找嵌入式方面工作,需要准备几个项目比较好,视频监控能打动面试官否?  
答:面试官更看重的是你在所列举项目中显示的能力。
        比如做安防的公司,当然会看重视频监控的经验,看重你是否会摄像头驱动;
        再比如各种智能外设公司,可能更看重你对各类外设的能力:比如红外、传感器、蓝牙。
        有一个误区,很多人是用同一个简历投向上百家公司。这是不可取的:
一、你对这个公司不用心,所以懒得去针对他们的要求改简历。
二、我看过近千份简历,没有个人特色的简历往往被第1时间丢掉。人人都写:精通C语言数据结构、精通ARM、精通LINUX──人人都这样写,只要有一个人针对该公司、该职位稍微修改一下简历,即可脱颖而出。

        你用心对待这个职位,者才会用心对待你。


39. 韦老师,EXT2、YAFFS2根文件系统 udev他们之间是关系或者各自在系统中扮演什么角色?
答:EXT2、YAFFS2只是文件系统的类型,就像windows上的FAT32、NTFS,只是一种格式。
        “根文件系统”是内容,是系统启动“必备的文件,比如库、某些应用”,就像windows上的C盘里面的内容,里面的文件删除一个就有可能导致系统无法启动。

        Udev是一个应用程序,它的作用是当你拨插某些设备时,会自动执行某些程序。还是以windows为例,当你插入U盘时,会自动安装驱动。Udev所做的事里有一项跟这是一样的。


40. 讨论栏限制游客发言!为了听课第一次使用YY,还想怎样?
答:我们也是第一次使用YY,开始不会使用选择了“主席模式”导致游客无法发言,后来马上换为“自由模式”了。下一次会做得更好。
9.4日公开课答疑汇总(带目录).zip (143 K) 下载次数:1