搜索
bottom↓
回复: 33

[I.P.LED][Innovation Practise Linux&Embedded Department][组织学习计划]

[复制链接]

出0入0汤圆

发表于 2008-3-28 13:04:26 | 显示全部楼层 |阅读模式
Innovation Practise Class .
Linux and Embedded Department .


学习计划:
         -初步建立Linux学习环境。
         -建议安装UBUNTU7.04或更新内核版本。如果使用WINDOWS操作系统,可以考虑安装虚拟机而不是双系统。虚拟机推荐(VM , VPC)
         -第一阶段,请大家熟悉Linux常用相关命令,VIM的使用,GCC,GDB。
         -这是最初的要求,要看我们的进度如何,希望大家尽快掌握起来。
         -参考资料大家可以从UBUNTU的官方论坛上获取。
         -对于大家的问题,我们将集中解决、回答。

         --原则上请大家不要水贴。保持帖子的持续性。

         PS:周末我要去成都参加LINUX的培训,我会把最新学习情况和大家交流……希望大家多参与讨论。


         PS1:使用板子大家可以考虑用AVR32或者S3C2410的。目前手头上有这点家当。
              目前大家先在PC机上玩,玩熟了再换到板子上面。

         
         PS2:希望大家一定要学会使用man这个命令来看help文档,格式:man 命令/相关信息
              比如你要看mv这个命令的具体说明:man mv回车就好了。
              当然man文档提供的资料是非常详细的,里面有所有参数的详细说明,顺便大家练习一下英文咯。
              如果大家只是想粗略的了解一下的话,那么大多数命令是支持-help或者-h等参数的,可以看简单的help文档的。

              
         PS3:我们在这里更多的是讨论学习的方法。请大家注意这一点。


         PS4:酷软推荐--当然有的是在windows下才可以使用的哈,不过貌似很多人都在用所以我就在这里提一下。大家有兴趣的可以玩玩哈。
              VMware Workstation (版权问题,如果大家要考虑的话,可以有一个VMware Player好像是不涉及版权问题的)。
              ARM Developer Suite v1.2(传说中的ADS1.2,希望自己编的可以考虑LINUX下的软件,记得有一个SKYEYE的……)
              Macraigor Systems(Flash Programmer)
              Source Insight3.5(这个我就不多说什么了……这么有名的人了)
              ARM Jtag Debug Final
              Ultra Edit -32(配置文件貌似还是要花时间配置的哦)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2008-3-28 13:05:15 | 显示全部楼层
PART -1-VIM 学习

         我们这里用的是VIM而不是VI,VIM是VI的加强版。这个要好用的多,比EMACS简单一点,当然很多牛人都是用的EMACS。
         vim filename就可以新建一个文件了。
         vim打开之后有一个help的参数可以进去它的文档,里面非常非常的详细的说明了几乎所有的东西……所以请大家慢慢的看。
         如果说你用2个星期的时间读了一遍……那么你已经很牛了,至少在使用vim这个方面。
         VIM有三种模式:命令行,编辑,底行。具体大家自己找资料哈。
         常用的命令键:i o O a 还有wq wq! !(跳到shell中)等等。
         当然vim还支持很多插件之类的。
         :set number可以设置行号显示
         :syn on 可以打开语法高亮显示
         你还可以加入cscope C-tag之类的,就可以像sourceinsight之类的软件一样好用了。
         还比如:split :vsp可以拆分窗口显示啊什么的。
         很多很多的小技巧,全部都在help文档里面可以找到,希望大家下去好好阅读,我们定期交流哈。

出0入0汤圆

 楼主| 发表于 2008-3-28 13:05:29 | 显示全部楼层
PART -2- GCC&GDB 学习

         GCC -v可以查看你的gcc的版本。同样你也可以通过查看help的文档来学习。
         应该说Linux的help文档比那些书要好的多,详细多,就是大家不喜欢看罢了。

         一般我们编译一个文件可以用gcc -o2 -g -pg filename.c -o filename的形式。
         说明-02是优化度,-g是生成文件中包含可以被gdb调试的信息,-pg可以用gprof命令来剖析文件(gmon.out文件哈)。

         (据说有一个IBM的<font color=blue>clear case很好用,我没有用过只是把名字给大家)</font>

         gcc的参数也不是很多,都挺好用的还有-I -L之类的可以指定头文件和函数库的路径等,可以在makefile中使用。
         gcc [options] [filename]

         想要用GDB调试就要用-g的参数,然后就可以用GDB来调试了。
         GDB也有一点点命令可以使用,设置断点啊,单步执行啊,什么什么的,通过HELP文档你可以很清楚的知道。
         从理论上来说,主要的是你想做什么而不是linux可以提供给你什么。
         gdb [filename]的形式来运行哈。

说一下程序编译的过程:
    源程序-->预处理-->编译-->汇编-->链接-->可执行文件
    *.c            *.i    *.s     *.o
             cpp      ccl    as      ld



在这里可能要设计动态链接库dynamic(*.so),还有静态链接库static(*.a)

         哦,对了,如果大家喜欢反汇编的话有一个objdump可以使用,不过你要用-s参数提前生成汇编文件哈。

         其他的还没有想到,大家有什么需求尽管提哈,我知道的一定告诉大家。
         有什么错误希望大家多多指教,互相学习嘛,我还是是菜鸟哈。

出0入0汤圆

 楼主| 发表于 2008-3-28 13:05:39 | 显示全部楼层
PART -3- Linux命令&操作 学习

学习的第二阶段:文件I/O编程,进程控制开发,进程间通信。
我参加学习的进度哈,大家可以放的慢一点,不然我也不好整理资料。
至于程序什么的等我调试好了,写好了注释什么的再放上来。
放上来第一份学习文档,不是很详细……想知道所以然的还要靠自己在网上搜索哦第一份学习文档,希望自己多多实践。ourdev_246267.pdf(文件大小:220K) <font color=green>(原文件名:I.P.LED-studyDOC-1.pdf)
</font>


进程和进程间通讯。
得到标识号:getpid(); getppid();
常见的调用进程的系统命令:ps\top\nice\renice\kill\crontab\bg
进程创建fork() 返回一个pid_t类型的值。父进程返回进程号,子进程返回0。
在创建了进程之后,如何在进程中启动另一个程序执行?exec函数族:execl\execv\execle\execve\execlp\execvp
exit()\_exit():exit()函数在执行中要清空I\O缓存,_exit()执行时不清空缓存。
wait()用于使父进程阻塞、 waitpid()有更多参数可以用。
守护进程Daemon的编写需要5步:
    1、创建子进程,父进程推出:
          pid=fork();
        if(pid>0)
            {exit(0);}

    2、在子进程中创建新会话:
         setsid();
    3、改变当前目录为根目录:
         chdir("/");
    4、重设文件权限掩码:
         umask(0);
    5:关闭文件描述符:
           for(i=0;i<MSXFILE;i++)
                  close(i);

守护进程出错处理:
可以用syslog写入/var/log/messages--适用于2.4内核

进程间通讯。
管道通信:管道pipe() ; 有名管道FIFO
信号通信:kill() raise() alarm() pause() signal() sigemptyset() sigfillset() sigaddset() sigdelset() sigismember()
共享内存:
消息队列:


linux下编程的最后一次培训:多线程编程和网络编程
线程要用到pthread类函数。
还有策略就是mutex互斥锁线程控制信号灯的使用这些都是引入的思想。思想很重要。
对于网络编程主要是用TCP/UDP的方式。
实现的手段采用socket\fcntl\select这三类,实现终端下 简单的客户端和服务器之间的通信还是可以实现的。
好了,我的培训第一阶段已经结束了。剩下的时间就是实践联系的了。理论就先摆在这里。
第二阶段的培训内容是ARM硬件相关。加油!!!

出0入0汤圆

 楼主| 发表于 2008-3-28 13:05:46 | 显示全部楼层
PART -4- ARM&AVR32 硬件 学习

出0入0汤圆

 楼主| 发表于 2008-3-28 13:06:18 | 显示全部楼层
PART -5- Linux程序 学习 (C/Shell/QT/GTK/OpenGL...and so on . just a little)

    最新消息,我们为了以后开发项目方便,希望大家至少掌握两种脚本语言,用来调试项目。这里我推荐SHELL和PYTHON。o(∩_∩)o...

--没有人来听--我把第一次活动的'主干'放到这里-->
《Beginning Linux Programming, 4th Edition》Chapter 1: Getting Started
Programming Linux
/bin:Binaries,programs used in booting the system
/usr/bin:User binaries, standard programs available to users
/usr/local/bin:Local binaries,programs specific to an installation
the PATH variable:
/usr/local/bin:/bin:/usr/bin:.:/home/***/bin:usr/X1186/bin
Text Editors : VIM Emacs
The C Compiler: gcc cc
Your First Linux C Program:
the source code for the file hello.c
#include<stdio.h>
#include<stdlib.h>
int main()
{
printf ("Hello World\n");
exit(0);
}
Now comile,link,and run your program.
$gcc -o hello hello.c
$./hello
Hello World
$
Header Files:
You can use header files in subdirectiories or nonstandard places by specifying the -I flag
Library Files:
.a for traditional,static libraries
.so for shared libraries
You can instruct the compiler to search a library either by giving it the full path name or by using the -l flag.
some useful cmds:
ar/ranlib/ldd
Getting Help:
you can use $man gcc or $info gcc



最近开了Python GTK得帖子希望大家多多关注

出0入0汤圆

 楼主| 发表于 2008-3-28 13:06:27 | 显示全部楼层
PART -6- ARM(2410) 接口和驱动 学习

傻孩子催我了……呵呵,没有更新主要是最近有事情去不了成都了……
不过学习还在继续中。
首先对于arm的学习是一件很漫长的过程……从头开始来阿。
推荐基本书吧,我手头上有的:

<<ARM体系结构与编程>><<嵌入式设计及Linux驱动开发指南-基于ARM9处理器>><<ARM嵌入式应用开发技术白金手册>>


调试开发的工具好像以前说过了,现在计划的是先做一块学习板出来,原理图的库正在画……好多引脚阿……呵呵

出0入0汤圆

 楼主| 发表于 2008-3-28 13:06:36 | 显示全部楼层
--NOTICE-- 公告栏

   Notic about a CommonRoom Activity

NOTICE

All are welcome

Under the auspices of the I.P.LED

a talking of rap off will be given

on Beginning Linux Programming, 4th Edition

by XBL

in the Room 719 of the I.P.C

on Tuesday, April 1,2008,at 7:00 p.m.

The I.P.LED

April 1,2008


第一个公告,今天想说一下C的基本程序编写,结果没有人来……呵呵等到下次就要加上SHELL了哦。

出0入0汤圆

 楼主| 发表于 2008-3-28 13:06:44 | 显示全部楼层
<--占位-->

出0入0汤圆

 楼主| 发表于 2008-3-28 13:06:52 | 显示全部楼层
<--占位-->

出0入0汤圆

 楼主| 发表于 2008-3-28 13:07:02 | 显示全部楼层
<--占位-->

出0入0汤圆

发表于 2008-3-28 13:09:08 | 显示全部楼层
支持一下!

出0入0汤圆

 楼主| 发表于 2008-3-28 13:11:23 | 显示全部楼层
o(∩_∩)o...……多谢班长支持啊。不过您老也不用一次发2遍帖子吧……还好我占了10层楼,应该够我更新用的了。嘿嘿。

出0入0汤圆

发表于 2008-3-28 13:13:43 | 显示全部楼层
支持~~
头像被屏蔽

出0入0汤圆

发表于 2008-3-28 13:13:52 | 显示全部楼层
普通会员只能有24小时编辑贴子的权限。

所以上面的“占位”得尽快使用 :)

或者向傻孩子申请加入版主。然后让傻孩子告诉我就行了。可以设置任意数目的版主的。版主可以编辑其它人的贴子。

出0入0汤圆

 楼主| 发表于 2008-3-28 13:18:47 | 显示全部楼层
恩……多谢armok的提醒哈。他吃饭去了……等他回来我跟他说下……

出0入0汤圆

发表于 2008-3-28 22:35:32 | 显示全部楼层
连“占位”都学傻孩子的。真是个好学生,哈哈。开个玩笑。

出0入0汤圆

发表于 2008-3-29 00:48:59 | 显示全部楼层
呵呵...顶一下.

出0入0汤圆

发表于 2008-3-30 23:24:47 | 显示全部楼层
来串一下
后生可畏阿
我会经常来逛逛的,有什么问题也可以一起来讨论一下啊。

出0入0汤圆

发表于 2008-3-31 10:15:30 | 显示全部楼层
呃……初来咋到,请大家多多关照,小女子这厢有理了~~~忽忽~~~~o(∩_∩)o...

出0入296汤圆

发表于 2008-3-31 22:01:26 | 显示全部楼层
强烈的支持一下!

出0入0汤圆

 楼主| 发表于 2008-4-1 20:07:45 | 显示全部楼层

为了编辑网页……现学了点html,感觉还不错……
资料整理了我放在了I.P.C的ftp上面,大家可以去看哈(内部ftp哈)

出0入0汤圆

发表于 2008-4-9 09:14:46 | 显示全部楼层


大哥,最近在放假所以没有跟上进度,接下来我会努力看齐的!

出0入0汤圆

发表于 2008-4-9 09:25:10 | 显示全部楼层
支持

出0入0汤圆

 楼主| 发表于 2008-4-12 08:20:42 | 显示全部楼层

现在,我在中嵌进行培训,忙得实在是不行了……不过每周还是会更新帖子内容的……顺便说句,中嵌老师很好……陶校长也很好……嗬嗬

出0入296汤圆

发表于 2008-4-28 13:39:24 | 显示全部楼层
杨兄好象很久都没有更新了……

出0入0汤圆

 楼主| 发表于 2008-6-9 17:50:36 | 显示全部楼层
更新了 更新了~~ 发到别的帖子上去了

出0入296汤圆

发表于 2008-6-9 17:52:41 | 显示全部楼层
我写的GUI结构不是很复杂,你要不要提下意见?

出0入0汤圆

发表于 2008-6-13 10:57:50 | 显示全部楼层
同样LINUX 研究中, 是科华北路的中嵌吧, 报的是什么班?  试听了一天,下了很多资料,。。然后。。嘿嘿。。

出0入0汤圆

 楼主| 发表于 2008-6-13 15:58:02 | 显示全部楼层
呵呵 你够狠……现在是上不了咯~~ 软件工程师高级班~ 多探讨哈

出0入0汤圆

发表于 2008-12-24 15:34:23 | 显示全部楼层
老大果然牛!

以后要多指教噢

出0入0汤圆

发表于 2009-1-5 19:25:13 | 显示全部楼层
期待半年后能看出一些端倪。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 13:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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