2016年来了,今年,一定把Linux搞懂.
经过14年下的决心,15年做的尝试和准备.16年,必然是个实际行动的一年.
15年里,侧重单片机软件编程.
自己在AVR8位单片机上面玩ucos.
贴个工程模板在此,以备不时之需.
刚下载好linux-2.6.35.3.tar.gz.
准备开始一条漫长的道路.
{:sweat:}
下载完84M的Linux.
解完压怎么成368M了.
{:dizzy:}
Andrewz 发表于 2016-1-16 09:25
下载完84M的Linux.
解完压怎么成368M了.
压缩的吗很正常~ 今年的目标是把去年定下的本该前年完成的的事搞定? 好大口气{:titter:} 以楼主还玩在mega8的阶段以及今年执行去年筹划前年规划的计划来看,Linux学成时应该要到十四五建设的远景规划中了。 {:loveliness:}
还是先下个linux-0.11来看.
{:titter:}{:titter:} 祝你好运{:biggrin:} 把win 删掉, 1星期就可以了 先看完ULK吧 哈哈哈,,,,加加油、
不过,,linux一年压力山大啊。
一年,钻研一块板子,还是能有很大收获的 一年,特别是头一年,能入门那就是非常好的了, 千万不要说搞懂。。。
从折腾linux开始到现在,几年了也才感觉刚入门。。。 越做发现需要的知识越多,简直无底洞。 可以先买个树莓派, 快速上手. 此路真的漫漫长 没有实际的项目锻炼,看完书又忘了就~{:mad:} 看看 apue,跑跑里面的程序。 panjun10 发表于 2016-1-16 10:14
把win 删掉, 1星期就可以了
可以重装吧。 不知道有没有十天入门LINUX {:titter:} linux其实很简单的, 先别看内核源代码, 先学会linux编程,掌握个大概,最后你会发现比ucos还简单 2016一定要把安卓APP和底层 搞懂 开始学习的时候我也有这种感觉,现在快十年了,才吃透没几个子系统,还有不少疑问没完全弄清楚。内核研究不是线性的,粗粗了解下内核可能一周就够了,如果要做到负责的产品级别,楼主要做好打持久战的准备。 搞懂?难啊,能略懂略懂就不错了 立长志和常立志的区别 搞懂0.11版本都基本上不可能了,现在的版本…… 建议玩mainline主线版本,先在虚拟机中构建 你应该下载最早的版本,现在的linux太复杂了。内核下载了也没什么用,是那些程序员用来升级服务器内核用的,个人完全没能力看。 DWDM 发表于 2016-1-16 12:29
linux其实很简单的, 先别看内核源代码, 先学会linux编程,掌握个大概,最后你会发现比ucos还 ...
发现你就是大神,什么都会!
我是你的NC粉。 {:smile:}加油吧,路好长好长~ 想问一下:搞懂了又如何?
同样一起加油 这是条不归路。 本帖最后由 Andrewz 于 2016-1-16 19:50 编辑
mandylion2008 发表于 2016-1-16 16:58
想问一下:搞懂了又如何?
搞懂了就迈入G级别的频率.向程序员迈进~{:lol:}
在弄懂Linux之前,我是不敢说自己是程序员的.
最多,算半个码农.. Andrewz 发表于 2016-1-16 19:30
搞懂了就迈入G级别的频率.向程序员迈进~
赚钱多吗?投资回报率如何? mandylion2008 发表于 2016-1-16 19:50
赚钱多吗?投资回报率如何?
linux 嵌入式 是6000-8000
linux 驱动 | 服务器 是10000-15000
单片机 4000-6000
我这边大概是这样的.
至于自我感觉的话,如果我弄懂了linux,即使没赚到钱,我也读懂了一篇改变世界的代码.
而且撸了五六年的单片机,ST/FREESCALE/NXP/TI/ATMEL/PIC都撸过了,也想撸一撸Intel/amd...
做技术这五六年,真没赚到甚么钱.
但依旧自我感觉良好.
所以要继续学.
前些天看一大妈说SMI说的异常兴奋,"今天买3块,明天买就要5块了,人家都玩了89年了,你们都不懂,说人家是诈骗". 向楼主学习 我搞了好几年的dsp裸跑,两年前开始接触跑linux的dsp或arm,现在基本可以做内核、驱动移植,简单驱动的设计,会用qt做界面,但总感觉linux是无底洞,路漫漫 leafstamen 发表于 2016-1-16 09:25
今年的目标是把去年定下的本该前年完成的的事搞定?
{:titter:} {:titter:} {:titter:} 搞懂是多大的工作量,一年时间能了解入门就很不错了 Andrewz 发表于 2016-1-16 19:58
linux 嵌入式 是6000-8000
linux 驱动 | 服务器 是10000-15000
单片机 4000-6000
支持LZ,做技术这么多年了还肯继续学习,现在肯学的人不多了
当年在学校学了两年linux嵌入式开发,结果找工作才发现人家只看手里的文聘纸,也怪自己学的不好,一番挣扎选了单片机。
现在单片机方案都是一个人搞,小一点的项目都是国产片子,大一点就是51,现在做无刷已经是最高大上的了!
正在挣扎年后要不要换一个工作,往纯软件靠拢 本帖最后由 mandylion2008 于 2016-1-16 21:47 编辑
Andrewz 发表于 2016-1-16 19:58
linux 嵌入式 是6000-8000
linux 驱动 | 服务器 是10000-15000
单片机 4000-6000
做单片机的这么低?!
我知道的用单片机搞电机控制,做的稍好的轻轻松松1.5W~2W,做的更好的差不多3W。
单片机玩多了也就一回事,关键是要能解决一般人很难解决的问题,我不懂LINIX,只是觉得如果没有一定的KNOW-HOW在里面的话,光靠用功学习,很容易被刚毕业的新生代用更努力的熬夜超越的。
这个是我的一面之词,只是表达我的看法,肯定存在偏颇,没有哪个一定好,哪个一定差的意思,交流一下而已。所谓富无经业,则货无长主,市场供需决定价值。
我的两个亲戚的小孩,高中毕业,没上大学,都到深圳的一个类似计算机培训的地方学了2年,试用期就是9000多,还有一个马上去马化腾那里报到,其实做的跟本科生一样的事。可别说本科有理论人家没有,都一样,做同样的是还是靠悟性的。现在的大学教育与社会需求完全脱节,这类培训班非常火,但确实用人单位喜欢。 mandylion2008 发表于 2016-1-16 21:44
做单片机的这么低?!
我知道的用单片机搞电机控制,做的稍好的轻轻松松1.5W~2W,做的更好的差不多3W。
可能地方不同价格也不同.
以前待过一家专门做 医用离心机的公司,电机驱动软硬件都是一个工程师,年级大概比我大12岁.+老板自己(他们是同学).当时他月收入不到6K.(2年前).
另外一同事,自己进电机再转卖给别人,月营业额也有上10W的时候,就自己一个人进货出货.做单片机也只有4.5K.
这些是我知道的做出真的产品卖给别人用的.但是也只能算是小公司小打小闹,赚口饭钱.
也待过一些不出产品但是非常有钱的公司.老板用人的态度简直就是,你要多少就给多少,只要你好意思开口.
有些东西我也解释不了.
不如安心写代码,
等哪天有了十足的把握,再出来避免多交的学费.
Andrewz 发表于 2016-1-16 21:56
可能地方不同价格也不同.
以前待过一家专门做 医用离心机的公司,电机驱动软硬件都是一个工程师,年级大概 ...
手头有事做还是能够让人安心的。
骑驴找马是好策略,祝你早日读懂LINIX! mandylion2008 发表于 2016-1-16 22:01
手头有事做还是能够让人安心的。
骑驴找马是好策略,祝你早日读懂LINIX! ...
骑UCOS学Linux.
{:titter:}
祸害完了Jean J.Labrosse再来祸害Linus Torvalds.
你的linux居然学成了这样.{:titter:}
一起加油! 明年老板买不买得了新车就靠我们了! Andrewz 发表于 2016-1-16 19:58
linux 嵌入式 是6000-8000
linux 驱动 | 服务器 是10000-15000
单片机 4000-6000
currency 是什么? Linux 越做发现需要的知识越多,简直无底洞,做吧。 楼主加油 Linux下有QQ玩吗 去年好像真看过类似的帖子。 Andrewz 发表于 2016-1-16 22:04
骑UCOS学Linux.
祸害完了Jean J.Labrosse再来祸害Linus Torvalds.
不懂你说的?
arm7tdmi 发表于 2016-1-16 23:03
Linux 越做发现需要的知识越多,简直无底洞,做吧。
层主,现在在用linux么?做什么产品? fengyunyu 发表于 2016-1-17 09:57
层主,现在在用linux么?做什么产品?
没做,只是有感于,用单片机做出个好东西已经很费劲了,各种背景知识缺一不可。
linux浮于表面也没意思,半步深度更是让人困惑,还不如把时间都投入到单片机里。
atommann 发表于 2016-1-16 23:02
currency 是什么?
RMB 共同学习,不过没有楼主那么霸气。我是争取入门 准备继续做一年屌丝? snowland 发表于 2016-1-18 01:24
你在做驱动?
硬件和驱动都做。。 包括一些简单的应用。。 楼主加油! boyiee 发表于 2016-1-18 12:58
硬件和驱动都做。。 包括一些简单的应用。。
厉害,以前学过linux,发现自己根本不是那块料,再者公司的产品完全用不到,学着忘着。后来一狠心卖掉了所有linux相关的开发板书籍,专心搞自己的单片机吧。 DWDM 发表于 2016-1-16 12:29
linux其实很简单的, 先别看内核源代码, 先学会linux编程,掌握个大概,最后你会发现比ucos还 ...
具体点呢?给指个道呢 这真是一条不归路!反正学出来了都是为了生活,为了money,还不如学习学习java,android;只有到后面你才会发现,懂得再多都没用,能挣钱的才有用,嵌入式的路不好走! arm7tdmi 发表于 2016-1-16 23:03
Linux 越做发现需要的知识越多,简直无底洞,做吧。
确实是这样的。 qingyin2009 发表于 2016-1-16 11:48
不知道有没有十天入门LINUX
带宽不够吧 justloong 发表于 2016-1-19 13:01
具体点呢?给指个道呢
{:smile:}找一家做linux的公司把,要做具体项目才能学会, 自己瞎折腾只能学表面功夫,要开发过程碰到问题,在解决的过程自然就学会,解决的问题越多,经验就越多, DWDM 发表于 2016-1-19 15:19
找一家做linux的公司把,要做具体项目才能学会, 自己瞎折腾只能学表面功夫,要开发过程碰到 ...
现在就是的,只是产品上分linu开发,和底层的MCU开发,工作需要把我我分配做MCU开发。 https://www.gnu.org/software/make/manual/make.html
看了一点点linux-0.11
发现还得先看上面这一页. #在这准备开始一条漫长的道路里快速回复# 14年下的决心+15年做的尝试和准备,这一路下来就是29年啊{:titter:} tim 发表于 2016-1-22 17:24
14年下的决心+15年做的尝试和准备,这一路下来就是29年啊
不许拿楼主开涮{:lol:} {:loveliness:}默默许愿 那些说Linux简单的人,能否把ELF文件格式分析透彻、程序的编译和链接原理搞懂、还有Linux内核子系统虽然非常多,但是仅限设备驱动模块能完全吃透的又有多少。。。 今天上班偷偷看了下GNU make.
现在自己回忆下所学.
GNU的make工具,用来处理Makefile.
Makefile一般有五种组织.
1. explicit rule. 明确的规则:把要执行的命令所需要的 文件, 执行生成的目标, 执行方式都写清楚.
2. implicit rule. 让make自动把寻找 生成目标对应的 源文件.
3. variable definition. 相当于C里面的宏定义.可替换长串的文件.
4. directive. 这个可能比较高级了还不懂.
5. # comment.注释.
make也相当于也是在解释makefile.然后按照makefile里面写的一步一步调用具体的命令.
make会按照顺序执行makefile里面的命令.
如果要生成一个 目标A, A由目标B,C,D链接而成.
那么,在由B,C,D生成目标A的时候,就会分别检查一下目标B,C,D文件的生成时间是不是在B,C,D的源文件最后修改时间之后.
如果是,说明该目标文件仍然是最新的.
如果不是,说明该目标文件的源文件已经被修改过了但还没重新生成目标文件,于是就会用这个目标文件的源文件用这个目标文件的makefile再make一次.
....
有点绕.
最后,这个生成目标A的make会确保它需要的B,C,D都是最新的.这是个自动的过程,但是每一步其实都是你自己写的.makefile的嵌套.
然后就通过recipe生成目标A.
同时,你还可以在makefile里面加一点其他的命令,用以完善你的make.比如,把中间生成的文件删除等等.
有点像脚本,虽然我也不知道脚本是甚么.
今天就学到这里了.
下雪了. 补上昨天的学习成果,今天可能要弄一下CM3.
前天看了下GNU make.大概了解是什么意思.
昨天开始看linux-0.11.
有一套配套的linux内核注解,赵炯写的,觉得适合(我不是打广告).
看了boot里面的三个文件 bootsect.s setup.s head.s,理清下思路:
开机会运行BIOS.我猜测这个BIOS和单片机很像,用的应该是NOR-FLASH.
书中没有具体讲解.
加载 第一个汇编程序bootsect.s到0x7C0.
这个bootsect.s是用 你所使用的机器所支持的汇编写的.书上写的是Intel汇编.一般也是.
要用Nasm之类的工具.
它会把自己复制到内存的0x90000处.还会把setup.s也复制到内存0x90200处.
这个setup.s是第二个汇编程序,也是目标机器汇编.
它会把system,也即你写好的linux内核等加载到0x10000.
Linus估计内核不会超过512KB,所以也不会覆盖到0x90000的bootsect.s.
说道system,它的最前端.就是第三个汇编程序head.s了.
这个head.s已经开始脱离具体硬件,用AT&T的汇编格式了.
用的工具就是GAS之类了.
之后的大部分是C程序,以及一些嵌入了AT&T的C和AT&T的汇编.
具体的功能,暂时还没看.
这样,相当于又要学习Intel汇编,又要学习AT&T汇编,还要会写C.
还要会写makefile.
有点像前年学习CM3时候遇到startup.s时候的感觉.
看汇编时有点像试图将ucos移植到CC2530时候的感觉.
先写到这里了. 问下楼主前辈,在arm7上跑ucos好点还是跑uclinux好点,想尝试做下简单视觉处理想跑系统挂个qt试试但是好像arm7跑不了linux希望前辈能解答下困惑 759648442@qq.co 发表于 2016-1-27 22:45
问下楼主前辈,在arm7上跑ucos好点还是跑uclinux好点,想尝试做下简单视觉处理想跑系统挂个qt试试但是好像a ...
称不上前辈.
ARM7没有玩过.
uclinux也没接触过.
只是想学习linux的新手菜鸟.
视觉处理也没接触过....
{:sweat:}
你是来打击我的吗.
{:sweat:}
啥都不懂. Andrewz 发表于 2016-1-16 19:58
linux 嵌入式 是6000-8000
linux 驱动 | 服务器 是10000-15000
单片机 4000-6000
我和你类似遭遇,做微控制器软件开发6年了,学了一段时间嵌入式Linux,看的国嵌的视频,靠这个没有找到工作没有挣到钱,现在在学Android。 Llinuxu 发表于 2016-1-19 13:42
这真是一条不归路!反正学出来了都是为了生活,为了money,还不如学习学习java,android;只有到后面你才会 ...
不能挣钱的技术都是狗屁。 wuha 发表于 2016-1-19 12:45
厉害,以前学过linux,发现自己根本不是那块料,再者公司的产品完全用不到,学着忘着。后来一狠心卖掉了 ...
兄弟比较务实。 Andrewz 发表于 2016-1-28 10:33
称不上前辈.
ARM7没有玩过.
uclinux也没接触过.
我是真的都不懂。。。想学但是感觉找不到路 本帖最后由 lanqilove 于 2016-1-28 16:48 编辑
@all
看了好多类似的帖子,都是“我要学linux啦,买个2440还是A8?”,“uboot代码看不懂”之类的,还有楼主这样的一上来直接就看内核代码。作为一个过来人,我想告诉你们你们的想法太“硬件”了、太“电子”了,所以我想给大家一些建议,希望让大家事半功倍。
首先说说操作系统(注意!不是实时内核)的出现是为了让那些不懂硬件的软件工程师去控制硬件,所以对待Linux一定要以软件工程师的角度去看待。到底怎么从软件工程师的角度去看问题:
1、不要以为在单片机上移植了RTOS多牛逼,也不要以为写了多么复杂的逻辑,实现了多么牛逼的状态机,我如何如何安排SPI Flash里面数据的存储。其实对于一个写Linux代码的工程师来说,那根本用不着,而且很low,你在单片机上的编程经验也只能在单片机里面牛逼,到linux下不好使。Linux上有多线程、shell、网络编程、线程间通信、进程间通信等好多知识要学习。还有web服务器、数据库、FTP文件服务器、JSon解析等好多库、软件需要去移植去安装。
2、暂时忘记硬件,一定要忘记寄存器、Flash、Ram等一切跟硬件有关的东西,装个Linux系统或虚拟机,先学会Linux下的命令行,简单shell编程,C语言编程,Makefile。
其次,不要把uboot,内核,驱动看的太重。
1、很多底层的东西芯片厂家都已经帮你做好了,比如华为海思的芯片,不管是数字电视芯片、录像机芯片、摄像头芯片,底层都做好了,编译出demo就能出图像。所以啊,底层代码压根不需要你来做。
2、国内这行情,压根没有公司允许你从底层开始开发,等你把内核和驱动都搞稳定了一年过去了,竞品都赚饱了,你才把系统搭建完成。除非你是做开发板的,不在乎稳定性。
到这里,你已经对Linux有了一定了了解,也知道makefile怎么写了,命令行也溜溜的,买个板子开始实战吧,没有必要性能很牛逼,2410都行,真正吃CPU的算法之类的一般的Arm都跑不流畅。咱要硬件学习的是如何烧写调试硬件。
1、买个板子,看看是通过串口还是jlink之类的把u-boot烧进板子里。
2、学习u-boot命令,利用u-boot通过网络烧写内核,学习内核是如何启动的,当然不是让你去看内核代码,而是学习内核启动参数如何传递,哪些参数有什么作用。
3、通过u-boot烧写文件系统。
4、通过以上官方提供的镜像,以及你的配置,一个基本的带网络的Linux已经跑起来了,这时候你可以telnet到板子上进行samba、tftp等基本软件的建设。
5、把你在电脑上写的代码交叉编译了在板子上跑。
6、至于具体硬件的操作,看官方的demo就可以了。
你已经是一名合格的嵌入式Linux应用开发工程师了。
1、你的项目中有可能要支持ext4的文件系统,此时官方内核并没有支持,你需要make menuconfig 重新配置内核,注意是配置不是改内核源码,然后重新编译烧写,测试。
2、假如你拿到一张很便宜的USb网卡,而你的系统不支持,这时候你需要找到网卡芯片厂家,去下载驱动,回来自己编译,编译出来加载到系统上。
可以看出,经历如上过程,你不需要去改内核源码、也不需要去改u-boot,难道不需要去动底层了吗?no,还有一种情况没有考虑到,就是硬件和官方不一样,比如内存芯片换了,
时许不一样了,那是硬件工程师挖的坑。
说了很多,总结一下,先学Linux编程,然后学习板子烧写配置,最后在板子上跑程序。不要啃内核,切忌,除非你已经对Linux很熟悉了。 那些叫人看内核源码的、研究编译原理的,分析ELF格式都是挖坑给被人跳呀;
我就问一句,这里开发单片机的,谁去研究过KEIL IAR是怎样编译程序的,难道要研究过这些才能去开发产品的么?
用ucos的 难道要把源码啃一次,才去用么? polarbear 发表于 2016-1-28 16:44
那些叫人看内核源码的、研究编译原理的,分析ELF格式都是挖坑给被人跳呀;
我就问一句,这里开发单片机的 ...
这就是搞硬件和搞软件的思路不同,在嵌入式软件这里,编译和链接是基本问题啊,不搞清楚遇到复杂的问题根本无从下手,不同的库很可能是不同的编译器输出的,二进制布局会不同,elf是一种通用bin格式。
搞单片机开发,程序规模不在一个数量级,也基本不涉及这类问题。 82楼的不错,我也是在linux下开发,但我并不懂Linux驱动和内核,其实要看你的方向了,一个人不可能把Linux下一切都做好的。 搞了好久 一直没入门 为什么串口发送还是用查询的方式呢。。。。 icoyool 发表于 2016-2-26 16:49
为什么串口发送还是用查询的方式呢。。。。
?你是说 ucos模板里面?
发送有两种,一种是查询的,因为接收一个和发送一个的时间不会差很多,而接收是中断的,所以在接收一个的时候用查询的方式再发送一个应该不会有什么延时.
可以再写一个中断的发送函数,这样的话要事先准备一个缓冲区,把要发送的内容装载好. 80和81楼说地很好啊,会用Linux才能更好理解内核和驱动为什么那样设计,或者所谓的*NIX哲学。那些非要从内核,编译原理上手的难道学stm32也要先研究怎么写ld脚本?{:titter:} 越发迷茫了 买了书,在看4.1内核 看来AVR还是值得学习的.今天在Linux下开发ATmega128A.
还好shaoziyang老师做了大量工作.
可以在Linux下面用AVRUBD下载程序了.
接下来先用Linux交叉编译ATmega128A. DWDM 发表于 2016-1-16 12:29
linux其实很简单的, 先别看内核源代码, 先学会linux编程,掌握个大概,最后你会发现比ucos还 ...
其实你说的才是真理!学习就得循序渐进。 lanqilove 发表于 2016-1-28 16:04
@all
看了好多类似的帖子,都是“我要学linux啦,买个2440还是A8?”,“uboot代码看不懂”之类的,还 ...
2的10次方个赞{:lol:} lanqilove 发表于 2016-1-28 16:04
@all
看了好多类似的帖子,都是“我要学linux啦,买个2440还是A8?”,“uboot代码看不懂”之类的,还 ...
说的很中肯啊,留个联系方式呗 Andrewz 发表于 2016-1-16 09:25
下载完84M的Linux.
解完压怎么成368M了.
哈哈。。。。。
看来得来个5年计划了。
话说搞技术还是得靠兴趣和金钱动力,靠毅力没用的。 本帖最后由 slzm40 于 2016-2-27 21:55 编辑
看内核源码? 绝对爽死你,我从14年9月开始,买过许多书,先看过内核,然后makefile,再到驱动,到数据结构,最后到Qt和应用编程。现在基本是写一些应用小程序, 偶尔自己写点服务,在现成的开源库做应用, 当然,这些都只是爱好,不是我的正式工作。。。最后的最后,没有看懂内核,要先用起来。
看到80楼了, 那些弯路子基本走过。 最后,linux层次分很多的, 而最最软件的方法,从应用开始。
从内核开始,对信心的打击太强了,一度让自己想放弃。
现在我也只是会应用编程,makefile,Qt, 把ubuntu装到物理机上了, 驱动?内核源码? 最后还是忘了,最后倒是带来一些思想和对OS的基本理解。 Andrewz 发表于 2016-1-16 19:58
linux 嵌入式 是6000-8000
linux 驱动 | 服务器 是10000-15000
单片机 4000-6000
搞安卓可能收入更高
找个Linux相关工作,可以一天入门,一周熟练
我也是每年都发誓,一定要学会Linux,然后下一年继续发誓,当然学会了一点点,而已 昨日1.15元包邮收购了一台 刷卡机.
料是很足的,STM32F103RCT6+IS1677SM(蓝牙)+磁头+8035s+PF52913+320mah锂电池.
...
1.15元包邮.
做工精致.
这年头,单片机已经"贱"成这样了吗?
说实话个人感觉这个1.15元技术含量已经不低了.
但是价格居然可以如此之"贱".
而且淘宝上到处有卖.
这个根本就不是技术上的价格.
也不是成本上的价格.
上次听坛子里某大侠分析这个东西的背后目的,忘了目的是什么了.
但显然是有的.
不好意思,到电工手里,就成了赤裸裸的廉价IC了.
倒卖IC说不定也能赚上一票.
{:titter:}
学习Linux的决心更加坚定了.(曾几度想...) 先把linux操作学会再说 祝你好运