发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名

[经验] 朱兆祺带你一步一步学习嵌入式(连载)

2013-8-6 19:55:39  171041 嵌入式
分享
200
本帖最后由 zzq宁静致远 于 2014-7-12 09:34 编辑

    从最初涉及嵌入式Linux开始到现在,深深的知道嵌入式的每一步学习都是举步维艰。从去年11月份开始,我就着手整理各种学习资料,希望推动嵌入式学习的前进贡献自己微不足道的一份力量。从去年到现在,将C语言的学习经验整理成《攻破C语言笔试与机试陷阱及难点》(现在仍在更新),这份资料已经在电子发烧友论坛单片机论坛连载(http://bbs.elecfans.com/jishu_354666_1_1.html),这份资料也已经录制了部分视频;现在我同样将嵌入式学习经验进行整理进行连载,视频我已经在加紧录制,等录制到一半将会挂载在网上以供嵌入式学习者免费下载。                       
    我从大一学习C语言到大二开始接触ARM,从毕业工作到现在筹建明志电子科技工作室承接各类项目,一步步都是自己扎扎实实走过来,我整理的资料,每一个图都是根据我的思维、适合学习者的角度亲自画出,每一个程序都是亲手敲入进行调试。
    2013年8月8日更新:
    为了满足大家的学习,嵌入式Linux实用教程同步视频以每5集形式上传。


2014年4月8日:
     《嵌入式Linux开发实用教程》一书已经出版,本帖将会持续更新,后续更会有裸板视频和项目视频更新。敬请关注。
    《嵌入式Linux开发实用教程》购买地址:
http://item.taobao.com/item.htm?spm=a1z10.1.w6545579-4546600052.3.8xcC8H&id=36731267737
未标题-10.jpg
未标题-1.jpg

   




1.本书及视频QQ群:
嵌入式Linux开发实用教程1:284013595  (1000人)
嵌入式Linux开发实用教程2:271641475   (1000人,已满)
嵌入式Linux开发实用教程3:301012138    (500人)
深圳市馒头科技有限公司官方百度网盘(C语言、单片机、嵌入式视频):
http://pan.baidu.com/share/link?shareid=3562495290&uk=3996269986



2.《嵌入式Linux开发实用教程》视频清单:
第1课:Linux基本操作指令
第2课:Makefile
第3课:Linux常用软件
第4课:U-Boot-2013.04搭建适合OK6410模板
第5课:初步编译U-Boot-2013.04
第6课:U-Boot-2013.04启动分析1
第7课:U-Boot-2013.04启动分析2
第8课:SD卡启动U-Boot原理
第9课:SD卡启动U-Boot-2013.04移植1(解开众多商家SD卡启动机密)
第10课:SD卡启动U-Boot-2013.04移植2(解开众多商家SD卡启动机密)
第11课:SD卡启动
第12课:Signal # 8 caught错误
第13课:MMC驱动移植
第14课:FAT文件系统
第15课:U-Boot命令
第16课:NAND Flash移植(1)
第17课:NAND Flash移植(2)
第18课:NAND Flash移植(3)
第19课:DM9000网卡移植
第20课:Linux-3.8.3内核介绍
第21课:初步测试内核(1)
第22课:初步测试内核(2)
第23课:下载地址和入口地址
第24课: MTD分区
第25课:NAND Flash移植
第26课:DM9000网卡移植
第27课:使内核支持YAFFS2文件系统
第28课:制作YAFFS2文件系统
第29课:LCD移植
第30课:字符设备驱动之LED
第31课:字符设备驱动之ADC
第32课:块驱动
第33课:tslib安装
第34课:安装Linux和embedded版本Qt-4.8.4
第35课:安装QtCreator编译环境
第36课:Qt初体验之Hello
第37课:Qt之LED
第38课:Qt之ADC
第39课:项目拓展学习(1)
第40课:项目拓展学习(2)
第41—50课:裸板程序设计
3. 嵌入式Linux实用教程软件:
Ubuntu10.04.4镜像、VMware-7.0.1虚拟机、Source Insight3.5+注册码、SecureCRT_6.6.1_PiaoXu.net、SD_Writer、UltraEdit10c、USB转串口驱动、等等嵌入式Linux常用软件。
4. 嵌入式Linux实用教程资料
S3c6410相关手册、Linux常用书籍、嵌入式Linux实用手册初稿、等等。
5. 嵌入式Linux开发实用教程源码
linux-3.8.3、u-boot-2013.04-rc1、自制编译器、等等相关源码
6. 嵌入式Linux实用教程程序
《嵌入式Linux开发实用教程》一书中涉及的U-Boot添加程序、Linux程序、Linux设备驱动程序、Qt程序等等
6. C语言技术公开课
电子发烧友学院进行的一系列课程涉及的资料,相关链接如下:
下载说明:

百度网盘:

[url=]http://pan.baidu.com/share/link?shareid=3562495290&uk=3996269986[/url]




第一章第一节  Linux基本命令
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2111915&fromuid=222350

第一章第二节  Makefile基本知识
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2111927&fromuid=222350

第一章第三节  arm-linux交叉编译链
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2111953&fromuid=222350

第一章第四节  映像文件的生产和运行
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2112037&fromuid=222350

第二章第一节  U-Boot-2013.04分析与移植之BootLoader概述
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2115821&fromuid=222350

第二章第三节  建立OK6410可用的U-Boot模板
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2116938&fromuid=222350

第二章第四节   编译U-Boot模板
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2124889&fromuid=222350

第二章第五节  U-Boot-2013.04启动分析(1)
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2136058&fromuid=222350

第二章第六节  U-Boot-2013.04启动分析(2)
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2149112&fromuid=222350

第二章第七节  U-Boot-2013.04启动分析(3)
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2167921&fromuid=222350

第二章第八节  U-Boot-2013.04启动分析(4)
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2187418&fromuid=222350

第二章第九节  U-Boot-2013.04启动分析(5)
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2220235&fromuid=222350

第二章第十节   IROM启动的概念
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2246925&fromuid=222350

第三章第一节   初步测试内核
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2273727&fromuid=222350


第三章第二节   mkimage工具
http://bbs.elecfans.com/forum.ph ... 2860&fromuid=222350

第三章第三节    加载地址和入口地址
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2420732&fromuid=222350


第三章第四节    内核启动分析
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2466792&fromuid=222350

第三章第五节    MTD分区
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2541575&fromuid=222350
第三章第六节     NAND Flash驱动移植

第三章第六节  DM9000网卡驱动
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2676612&fromuid=222350

第三章第七节  YAFFS2根文件系统(1)

第三章第八节  lcd驱动移植

第三章第九节   LCD触摸移植

第四章第二节  字符设备驱动
http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=357014&pid=2879175&fromuid=222350


第五章第一节  Qt编译环境搭建

第五章第二节  安装Linux/x11版Qt-4.8.4


轮翻6-1.jpg

评分

参与人数 4威望 +21 +21 积分 +25 收起 理由
704292306 + 5
yanlaidong + 1 + 1 您的帖子很精彩,期待您分享的下一个帖子!.
冰葑世纪 + 10 + 10 + 10 您的帖子很精彩,期待您分享的下一个帖子!.
dongyumin + 10 + 10 + 10 您的付出是论坛的动力,感谢您一直支持!.

查看全部评分

readlove1 2013-8-8 10:47:22
自学能力很强,支持!
回复

举报

xu89676472 2013-8-8 16:51:04
谢谢楼主分享。
回复

举报

samplewell 2013-8-8 20:48:14
好像很不错哦,gz
回复

举报

ksd 2013-8-8 21:36:19
嵌入式搞不懂,感谢分享。
回复

举报

czx5685419 2013-8-8 23:10:14
值得学习                                                                                                              
回复

举报

高雅 2013-8-9 04:48:14
楼主很给力
PCB打样找华强 http://www.hqpcb.com 样板2天出货
回复

举报

南极淘90 2013-8-9 08:12:49
楼主有心了,多谢分享。
回复

举报

王力斯 2013-8-9 12:05:44
着实相当给力。。。向楼主看齐、。
回复

举报

明天过后88 2013-8-9 16:36:59
牛人........................
回复

举报

红尘孤星 2013-8-10 08:07:05
很好嘛 很详细哦!谢谢楼主
回复

举报

zzq宁静致远 2013-8-10 08:10:28
第二章第四节   编译U-Boot模板
U-Boot支持将编译生成的文件与源码文件分开放置,可以通过两种方式指定生成文件的目录。
1)        在命令行参数添加中添加“O =”。
liqiang@liqiang-virtual-machine:~/work/forbook/u-boot-2013.04-rc1$ make O=build
2)        给环境参数变量BUILD_DIR赋值,这个值就是我们期望中间文件存放的位置。
liqiang@liqiang-virtual-machine:~/work/forbook/u-boot-2013.04-rc1$ export BUILD_DIR=./build
liqiang@liqiang-virtual-machine:~/work/forbook/u-boot-2013.04-rc1$ make
为了保持源代码目录的干净,推荐用以上方式将编译生成的文件输出到一个外部目录。如果没有指定生成文件的目录,则默认为源码顶层目录。
liqiang@liqiang-virtual-machine:~/work/forbook/u-boot-2013.04-rc1$ make O=../build smdk6410_config
liqiang@liqiang-virtual-machine:~/work/forbook/u-boot-2013.04-rc1$ make O=../build
输入命令行,编译后提示错误,打印出以下错误信息。
arm-linux-ld:/home/liqiang/work/forbook/build/u-boot.lds:19: syntax error
make: *** [/home/liqiang/work/forbook/build/u-boot] 错误 1
事实上,这是源码出现的第一个bug,u-boot.lds链接脚本的语法有误。u-boot.lds是在编译的时候临时生成的链接脚本,它生成的依据之一是u-boot-nand.lds链接文件,该文的位置为board/samsung/smdk6410。打开u-boot-nand.lds,发现内存4的倍数对齐的描述与书写有误,必须大写。
51         . = align(4);
52         .u_boot_list : {
53                 #include <u-boot.lst>
54         }
55
56         . = align(4);
修改为:
51         . = ALIGN(4);
52         .u_boot_list : {
53                 #include <u-boot.lst>
54         }
55
56         . = ALIGN (4);
       继续输入make O=../build编译,出现错误提示信息:
start.o: In function `cpu_init_crit':
/home/liqiang/work/forbook/build/nand_spl/board/samsung/smdk6410/start.S:227: undefined reference to `_main'
make[1]: *** [/home/liqiang/work/forbook/build/nand_spl/u-boot-spl] 错误 1
make[1]:正在离开目录 `/home/liqiang/work/forbook/u-boot-2013.04-rc1/nand_spl/board/samsung/smdk6410'
make: *** [nand_spl] 错误 2
事实上,这是源码出现的第二个bug,修改方法如下:
打开Makefilenand_spl/board/samsung/smdk6410),添加crt0.S(arch/arm/lib/)文件编译。
40 SOBJS   = start.o cpu_init.o lowlevel_init.o crt0.o
...
69 $(obj)start.S:
70         @rm -f $@
71         @ln -s $(TOPDIR)/arch/arm/cpu/arm1176/start.S $@
72 $(obj)crt0.S:
73         @rm -f $@
74         @ln -s $(TOPDIR)/arch/arm/lib/crt0.S $@
继续编译又出现下面的错误提示信息:
/home/liqiang/work/forbook/build/nand_spl/board/samsung/smdk6410/crt0.S:153: undefined reference to `coloured_LED_init'
/home/liqiang/work/forbook/build/nand_spl/board/samsung/smdk6410/crt0.S:154: undefined reference to `red_led_on'
make[1]: *** [/home/liqiang/work/forbook/build/nand_spl/u-boot-spl] 错误 1
make[1]:正在离开目录 `/home/liqiang/work/forbook/u-boot-2013.04-rc1/nand_spl/board/samsung/smdk6410'
make: *** [nand_spl] 错误 2
这是源码的第三个bug,打开arch/arm/lib/crt0.S文件,增加条件编译。
152 #ifndef CONFIG_NAND_SPL
153         bl coloured_LED_init
154         bl red_led_on
155 #endif
       终于编译过程顺利通过,一个简单的框架搭建完成。用ls命令列出build目录中的所有文件,内容如下所示。
api      examples  net         u-boot.bin
arch     fs        post        u-boot.lds
board    include   System.map  u-boot.map
commoninclude2  test        u-boot-nand.bin
disk     lib       tools       u-boot.srec
drivers  nand_spl  u-boot
第一个bug是链接脚本语法有误,很容易理解。第二、三个bug出现的原因与nand_spl机制有关,将会在后文详细介绍。尽管目前已经到了U-Boot编译生成的u-boot.binu-boot-nand.bin二进制文件。单板并没有配置可以直接存储和运行程序的NOR Flash,到目前为止我们依然无法验证移植是否成功。为了加深对U-Boot移植要点的理解,本书移植U-Boot不借助第三方已经移植好的BootLoader烧写程序,所有驱动程序自行编写。事实上,要实现把编译好的代码在单板上运行试验必须利用2.3.2小节的SD卡启动方法。在此之前我们先分析一下U-Boot的启动流程,为后续内容打好基础。

回复

举报

zzq宁静致远 2013-8-10 08:14:31
红尘孤星 发表于 2013-8-10 08:07
很好嘛 很详细哦!谢谢楼主

朱兆祺一直都是自学走过来,所以必定能打造史上初学者学习嵌入式最齐全的资料,开发板+书籍+视频+技术支持
回复

举报

zzq宁静致远 2013-8-10 08:16:24
王力斯 发表于 2013-8-9 12:05
着实相当给力。。。向楼主看齐、。

朱兆祺四年的经验之作,不给点力对不起自己
回复

举报

zzq宁静致远 2013-8-10 08:17:27
南极淘90 发表于 2013-8-9 08:12
楼主有心了,多谢分享。

有心无心且看后续连载,绝对会让你和你的小伙伴都惊呆。
回复

举报

zzq宁静致远 2013-8-10 08:18:40
凌波漫步086 发表于 2013-8-7 17:17
谢谢楼主分享!!!!!!!!!!!!!!!!!!!
我也是学嵌入式的,请楼主多多指教!!!!!!!! ...

嵌入式贵在坚持和动手
回复

举报

凌波漫步086 2013-8-10 10:18:59
zzq宁静致远 发表于 2013-8-10 08:18
嵌入式贵在坚持和动手

谢谢楼主,请多多指教!!!!!!!!!!!!!!
回复

举报

侯毓升 2013-8-10 10:58:37
楼主辛苦了
回复

举报

菜鸟求大神 2013-8-10 12:30:45
哎 我应该静下来虚心学习
回复

举报

黄亰松 2013-8-11 16:56:01
谢谢楼主,我刚学了写单片机,这几天很迷茫,不知道下一步该怎么学,,希望楼主多指教指教
回复

举报

木十化 2013-8-11 16:56:41
我是来膜拜大神的,正好最近在学arm
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表