1. Win7与Ubuntu的安装顺序。如果你想装这两个系统,那么先装Win7,再装Ubuntu,就不会出现我上面的问题,可能是Grub比较亲和的缘故吧,呵呵...
2. 如果出现了我上面的那种情况,用Grub4Dos来解决你的问题。去我的资源
里下载吧。注意,Grub4Dos文件夹下面有3个文件:g2ldr,g2ldr.mbr和隐藏的boot.ini。把这3个文件复制到Win7的主盘下面,然后重启进入Ubuntu之后,输入以下命令:
然后,再回到Win7中把Grub4Dos删除掉。这样重启就搞定了!
3. 如果你出现了上面的问题,用live CD安装了Grub,开机出现了Grub的命令提示符界面。输入以下命令,进入Win7:
然后下载mbrFix小工具修复mbr,然后把mbrFix放到C盘根目录下,然后打开cmd,切到C盘下面,运行这个命令:
- mbrfix /drive 0 fixmbr
- */
这样那个讨厌的Grub命令提示界面就消失了。然后,按照第2步执行就好了。
好了,这样Win7和Ubuntu就都顺利出现在开机之后的Grub列表
中了:)
最后,说下申请联想免费Win7升级盘的事情。前段时间,各个OEM厂商都给用户一个win7的免费升级计划,包括HP,Dell还有联想等厂家。于是,
大家都去申请了,搞笑的是,申请的时候,用户完全可以用虚假信息,以每张不到60元的价格“骗取”一张Win7旗舰版的安装光盘和厂家驱动盘。但是,后来
这个事儿让MS知道了,MS大怒。所以,后来用户如果要申请的话,需要提供购买笔记本或者台式机的证明,而且必须满足MS的升级规定。我就是在MS大怒之
后,不识相地去申请的,结果收到了联想否决的email,说我的小黑出厂是安装最低版的Vista,所以无法申请Win7光盘(因为当时在美国买的时候,
高版本的Vista要加不少钱,我没加:)。
http://www.cppblog.com/Files/guojingjia2006/Grub4Dos_mbrFix.rar
posted @
2010-08-10 13:29 小果子 阅读(1036) |
评论 (0) |
编辑 收藏
今天刚拿到tq2440的板子,给我的第一印象就是“小”,比我想象的小多了,淘宝看那么大的一张照片,拿到手里的是这么小的一个家伙,不过虽然小,还是“忍忍”吧。= =,选择买他的原因也是网上关于s3c2440的资料比较多,所以作为学习还是不错的
|
|
拿到板子后,清点了下资料,没什么问题,这里不得不说,资料确实丰富,14张DVD,不过内容怎么样,待定,不过至少使用手册还是不错的。讲的比较详细。所以花了3,4个小时,基本知道大概流程,于是开始玩板子。
|
|
这里说下自己的一点体会和理解: 其实,以前只在实验室玩过的板子,那时还是已经全部弄好,不必自己弄uboot,烧系统,今天这个活的自己干,虽然以前没玩过,不过看了开发手册后,大概也明白了整个过程。 大致说下自己的理解:nor flash和nand flash两个存储区,(他们区别网上自己找啊,很多的),nor flash是事先存放了一个uboot(没的话可以有几张方式烧写的,我板子里已经有了,所以次过程跳过),所以事先进入nor flash,载入uboot后,可以控制自己的uboot跟新和nand flash烧写,就怎么简单,完了就可以跑裸机程序了,当然不想跑的话可以直接移植linux或装wince,不过装完以后,如果还想跑裸机程序的,那nand flash烧写的系统必须重新烧写,不过好像有个选项可以控制烧写nand flash 程序载入位置的,不过我也没试过,所以没不确定。所以今天我就把裸机的几个看了下,其中有个TQ2440_TEST的测试程序,自己按步骤操作,编译完以后TQ2440_TEST.bin,通过usb烧写到nand flash中执行,测试的功能有多项,键盘按钮,触摸屏==,所以推荐尝试,其他的几个裸机程序都是在他的基础上修改和完善的,有兴趣的可以试下。= =,不过还是推荐研究下他的源码,花点耐心还是能看懂的。还有就是烧写前装下usb驱动,我win7的,正常,其他的没怎么了,还有就是用usb传输的时候,串口选择小心点,我之前因为用软件虚拟了几个串口,导致烧写不进去,后来删了就正常了。
先说到这了。只为自己学习留下痕迹。
|
|
posted @
2010-08-09 21:27 小果子 阅读(926) |
评论 (0) |
编辑 收藏
好久没动开发板了,终于把研考完了,可以安心的做自己的实验了,但发现放下手头关于tq2440的实验两个多月,发现生疏了许多,许多问题都要想一下才能记起来是什么原理,真得抓紧时间好好弄了。
又从uboot开始弄,以前移植了uboot1.3.1,由于太多匆忙,没有过多的注重细节,今天发现了一个以前忽略的问题,就是开发板自己判断是从何种flash介质启动的问题,首先说一下为什么要判断是哪种flash介质启动,因为这样就没有必要区分nor boot还是nand boot的bin文件了,bin文件烧到nor和nand都可以正常启动开发板。
在网上看了下别人关于nor boot或nand boot 的文章,发现Tekkaman Ninja写的文章非常好,很值得推荐,附上地址,以便以后查找:http://blog.chinaunix.net/u1/34474/showart.php?id=2085212
下面来分析下天嵌公司的uboot,据Tekkaman Ninja说,天嵌的uboot是从openJTAG的uboot 借鉴过来的,这个我们姑且不管他。贴下天嵌TQ2440的uboot中关于启动判断的代码:
int bBootFrmNORFlash(void)
{
volatile unsigned int *pdw = (volatile unsigned int *)0;
unsigned int dwVal;
dwVal = *pdw;
*pdw = 0x12345678;
if (*pdw != 0x12345678)
{
return 1;
}
else
{
*pdw = dwVal;
return 0;
}
}
这段代码的思想是这样的,无论是从NOR Flash还是从NAND Flash启动,地址0处为指令"b Reset",
机器码为0xEA00000B,对于从NAND Flash启动的情况,其开始4KB的代码会复制到CPU内部4K内存中,对于从NOR
Flash启动的情况,NOR Flash的开始地址即为0。对于NOR
Flash,必须通过一定的命令序列才能写数据,所以可以根据这点差别来分辨是从NAND Flash还是NOR
Flash启动:向地址0写入一个数据,然后读出来,如果没有改变的话就是NOR Flash。
我们在深入的分析下,首先看下nand boot 和nor boot 时物理地址分配情况:
从NAND闪存启动U-BOOT的设计思路
如果s3c2440被配置成从NAND闪存启动,上电后,s3c2440的NAND闪存控制器会自动把NAND闪存
中的前4K数据搬移到内部RAM中, 并把0x00000000设置为内部RAM的起始地址,
CPU从内部RAM的0x00000000位置开始启动。因此要把最核心的启动程序放在NAND闪存的前4K中。
当nor boot时,0x0000_0000是nor flash的起始地址,用语句*pdw = 0x12345678;
向0x0000_0000处写0x12345678,是没用的,因为对于NOR
Flash,必须通过一定的命令序列才能写数据,所以*pdw中存的数据仍然是"b Reset",但当nand
flash启动时,cpu内部的4KBbootSRAM被映射到0x0000_0000开始的地址处,norflash这时无效了,这时用语句*pdw =
0x12345678;
向0x0000_0000处写0x12345678时,0x12345678会被写入,因为这是对内存的操作,不需要指令序列等,所以一旦发现写入和读出
的数据一致时,则可判断是nand boot,这时一定要把0x0000_0000处的数据还原,用*pdw = dwVal; 这句。
明天看看,得重新移植uboot了,好好研究研究,uboot很高深啊!!
http://blog.sina.com.cn/s/blog_52009a100100hcv1.html
posted @
2010-08-09 14:04 小果子 阅读(1242) |
评论 (0) |
编辑 收藏
一直对vim的配置目录很confused,我发现它的配置路径有好几个,除了home下面的.vim,还有/usr/share/vim/vim72和/usr/share/vim,三个目录到底哪个才是vim读取的路径呢?
经过我的几番尝试和小小Google了一下,终于得到了结果。原来vim的“runtimepath”共有三个,就是我上面所说的,但是vim读取这三个路径是有顺序的。
首先读取的目录就是$home/.vim,如果vim读取到了该目录下的syntax或者plugin,就不会再去读取usr目录了。
其次读取的目录是/usr/share/vim, 最后才读取/usr/share/vim/vim72。
我想vim的设计者这样设计是有原因的,当前登录用户的个性化设定肯定是优先考虑的,而/usr/share/vim是给所有用户使用的设置。所
以,对vim的设置和修改还是放在home目录比较好,一方面不会破坏系统原有设定,可以随时恢复,另一方面的好处我没有完全弄明白,具体请参见这位老兄
的文章http://stackoverflow.com/questions/1384582/vim-linux-ubuntu-directory-location-vim-syntax
其实vim的documentation已经有很详细的描述了,在vim的command模式中输入:help ‘runtimepath’ 可以看到详尽的解释。
posted @
2010-08-04 18:37 小果子 阅读(7990) |
评论 (0) |
编辑 收藏
ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发
目标:
(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)
(2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)
(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。
从事嵌入式软件开发的好处是:
(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。
(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。
(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。
(4)兴趣所在,这是最主要的。
从事嵌入式软件开发的缺点是:
(1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
(2)这方面的企业数量要远少于企业计算类企业。
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。
(4)平台依托强,换平台比较辛苦。
兴趣的由来:
1、成功观念不同,不虚度此生,就是我的成功。
2、喜欢思考,挑战逻辑思维。
3、喜欢C
C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:
相信程序员。
不要阻止程序员做那些需要去做的。
保持语言短小精干。
一种方法做一个操作。
使得它运行的够快,尽管它并不能保证将是可移植的。
4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。
5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。
方法步骤:
1、基础知识:
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言、C/C++、编译原理、离散数学。
数据结构和算法、操作系统、软件工程、网络、数据库。
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。
主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。
2、学习linux:
目的:深入掌握linux系统。
方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。
主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。
3、学习嵌入式linux:
目的:掌握嵌入式处理器其及系统。
方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。
主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。
4、深入学习:
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。
C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。
说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺
术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。
注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。
不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!
技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。
嵌入式书籍推荐
Linux基础
1、《Linux与Unix Shell 编程指南》
C语言基础
1、《C Primer Plus,5th Edition》【美】Stephen Prata著
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux应用程序开发详解》
Linux内核
1、《深入理解Linux内核》(第三版)
2、《Linux内核源代码情景分析》毛德操 胡希明著
研发方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
硬件基础
1、《ARM体系结构与编程》杜春雷著
2、S3C2410 Datasheet
英语基础
1、《计算机与通信专业英语》
系统教程
1、《嵌入式系统――体系结构、编程与设计》
2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明著
3、《Building Embedded Linux Systems》
理论基础
1、《算法导论》
2、《数据结构(C语言版)》
3、《计算机组织与体系结构?性能分析》
4、《深入理解计算机系统》【美】Randal E. Bryant David O'Hallaron著
5、《操作系统:精髓与设计原理》
6、《编译原理》
7、《数据通信与计算机网络》
8、《数据压缩原理与应用》
C语言书籍推荐
1. The C programming language
《C程序设计语言》
2. Pointers on C
《C和指针》
3. C traps and pitfalls
《C陷阱与缺陷》
4. Expert C Lanuage
《专家C编程》
5. Writing Clean Code
-----Microsoft Techiniques for Developing Bug-free C Programs
《编程精粹--Microsoft 编写优质无错C程序秘诀》
6. Programming Embedded Systems in C and C++
《嵌入式系统编程》
7.《C语言嵌入式系统编程修炼》
8.《高质量C++/C编程指南》林锐
posted @
2010-08-02 10:16 小果子 阅读(198) |
评论 (0) |
编辑 收藏