学习知识|如何学习嵌入式开发( 五 )


当你写过几个C程序后 , 就可以进入下一阶段的裸机开发了 。
①不需要太深入
作为快速入门 , 只要你会编写“Hello, world!” , 会写冒泡排序 , 会一些基础的语法操作 , 暂时就够了 。
指针操作是重点 , 多练习;
不需要去学习过多的数据结构知识 , 只需要掌握链表操作 , 其他不用学习 , 比如:队列、二叉树等等都不用学;不需要去学习任何的函数使用 , 比如文件操作、多线程编程、网络编程等等;这些知识 , 在编写Linux应用程序时会用 , 但是在操作系统特别是驱动学习时 , 用不着!
永往直前吧 , 以后碰到不懂的C语言问题 , 我们再回过头来学习 。
在后续的“裸机开发”中 , 会让你继续练习C语言 , 那会更实战化 。
C语言是在写代码中精进的 。
②可以在Visual Studio下学习 , 也可以在Linux下学习 , 后者需要掌握一些编译命令 , 我们暂时没有提供C语言的教程 , 找一本C语言书 , 网上找找免费的C语言视频(主要看怎么搭建环境) , 就可以自学了 。
2.2.2 PC Linux基本操作:
对于PC Linux , 我们推荐使用Ubuntu , 在它上面安装软件非常简便 。
我们的工作模式通常是这样:在Windows下阅读、编写代码 , 然后把代码上传到PC Linux去编译 。 实际上 , Ubuntu的桌面系统已经很好用了 , 我们拿到各种智能机可以很快上手 , 相信Ubuntu的桌面系统也可以让你很快上手 。 为了提高工作效率 , 我们通常使用命令行来操作Ubuntu 。
不用担心 , 你前期只需要掌握这几条命令就可以了 , 它们是如此简单 , 我干脆列出它们:
①cd : Change Directory(改变目录)
cd 目录名          // 进入某个目录cd ..            // cd “两个点”:返回上一级目录cd -             // cd “短横”:返回上一次所在目录
②pwd : Print Work Directory(打印当前目录 显示出当前工作目录的绝对路径)
③mkdir : Make Directory(创建目录)
mkdir abc         // 创建文件夹abcmkdir -p a/b/c    // 创建文件夹a , 再a下创建文件夹b , 再在b下创建文件夹c
④rm : Remove(删除目录或文件)
rm  file     // 删除名为file的文件rm -rf dir   // 删除名为dir的目录
⑤ls : List(列出目录内容)
⑥mount : 挂载
mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mntmount -t yaffs /dev/mtdblock3 /mnt
⑦chown : Change owner(改变文件的属主 , 即拥有者)
chown book:book /work -R  //对/work目录及其下所有内容 , 属主改为book用户 , 组改为book
⑧chmod : Change mode(改变权限) , 下面的例子很简单粗暴
chmod 777 /work -R  // 对/work目录及其下所有内容 , 权限改为可读、可写、可执行
⑨vi : Linux下最常用的编辑命令 , 使用稍微复杂 , 请自己搜索用法 。
要练习这些命令 , 你可以进入Ubuntu桌面系统后 , 打开终端输入那些命令;或是用SecureCRT、putty等工具远程登录Ubuntu后练习 。
2.2.3 硬件知识
我们学习硬件知识的目的在于能看懂原理图 , 看懂通信协议 , 看懂芯片手册;不求能设计原理图 , 更不求能设计电路板 。
对于正统的方法 , 你应该这样学习:
①学习《微机原理》 , 理解一个计算机的组成及各个部件的交互原理 。
②学习《数字电路》 , 理解各种门电路的原理及使用 , 还可以掌握一些逻辑运算(与、或等) 。
③《模拟电路》?好吧 , 这个不用学 , 至少我在工作中基本用不到它 , 现在全忘光了 。

推荐阅读