Xinspace


  • 首页

  • 归档

  • 搜索

新手学习嵌入式linux开发路线(建议)

发表于 2013-07-27 | 分类于 Diaries

至今,在嵌入式方面我仍然是个小白。目前大二,学习嵌入式有一年了。当然,这一年是磕磕碰碰,断断续续,迷茫和不知所措也围绕着我,让我感到非常的苦恼。有一段时间甚至觉得这是无意义的,自己的激情都浪费在了如何定方向,走哪条路线上了,结果一年下来,什么都没学到。

在网上找了很多的新手入门路线之类的博客或帖子,还是受益匪浅的,很多路线都是一些在嵌入式行业做了多年的工程师写的,我这里总结一下,供新手们入门使用,在这里我要多说一句,入门的时候,不要想着哪条路是最好的。如果你还在纠结三条路中哪条路最好,那么你就会像一年前的我那样,徘徊在三条路上,最终一无所获。建议认定一条路走到底,等你到了一定水平了,就可以按照自己想走的路走了。言归正传,来总结一下路线。

1.大多数人都建议首先搞好C语言基础,这是重中之重。在这里就不讨论C语言是多么重要,推荐给大家几本书和一个网站:《C语言程序设计》谭浩强,这本书能够让你入门 或者《C Language Programming》 [美]Brian W.Kernighan,Dennis M.Ritchie,这本书是非常经典的,《C和指针》,这本书讲的比较透彻,《C专家编程》,这本书进阶了。网站有:http://learn.akae.cn/media/index.html,这个网站讲了linux下C编程。如果有精力建议大家还是学习一下数据结构,可以看一下清华大学严蔚敏的《数据结构》,这本书看完就可以了。

 

2.了解计算机组成原理,大家可以去网上找《计算机组成原理》这本书。

 

3.熟悉linux系统,可以看一下《鸟哥的linux私房菜基础篇》这本书。比较厚,讲的很全面,讲解的知识不必都懂,用到的时候能够在这本书上顺利找到就可以了。另外,鸟哥的网站上可以免费在线阅读这本书,网址是:http://linux.vbird.org/

 

4.熟悉在linux下的编程,可以看一下《UNIX环境高级编程》这本书。

 

阅读全文 »

linux下的翻译软件:星际译王 stardict or qstardict

发表于 2013-05-23 | 分类于 Others

不管什么原因,有时候需要阅读英文文献,对于英语不太好的朋友可能比较头痛。在linux下,有一款比较好的翻译软件:星际译王,也叫stardict,功能比较强大。

下面就来讲解一下如何安装与使用它。

1.安装stardict

debian,ubuntu,linuxmint等:sudo apt-get install stardict

redhat,fedora等:sudo yum install stardict

2.下载词典:

stardict词典库

当然,如果你想省事,可以直接下载这个词典(目前本人正在使用):英汉词典 汉英词典

3.词典安装方法:

linux下:
NOTE:如果使用的是stardict,那么需要先执行以下操作:
$mkdir ~/.stardict
$mkdir ~/.stardict/dic
$tar -xjvf a.tar.bz2 -C ~/.stardict/dic

如果使用的是stardict,则按照下面的命令
tar -xjvf a.tar.bz2
mv a /usr/share/stardict/dic

或者直接

tar -xjvf a.tar.bz2 -C /usr/share/stardict/dic

MAC下

tar -xjvf a.tar.bz2 -C /Applications/StarDict.app/Contents/Resources/share/stardict/dic

windows下

解压文件,把解压后的目录拷贝到安装目录的dic目录下。

到此,你就可以使用stardict来查阅英文了。

只用鼠标把要查的词选中,自动就会出现解释。当然,你可以随意更改设置,在stardict的设置里,自己去看看吧。

根据apache2 module tutorial one在linux下安装配置apache

发表于 2013-05-17 | 分类于 Others

如题,根据http://threebit.net/tutorials/apache2_modules/tut1/tutorial1.html这个页面在linux安装配置tutorial one module的话,会出现一些问题,下面记录我在安装配置过程中遇到的问题和解决方案。

如下约定:

1.红色字要特别注意,有一些提醒;

2.打了‘#’号的是注释而不是命令;

3.粗体字是小节;

4.主流程是main steps,主流程中遇到的问题解决方案的分支是child steps,有时候会从主流程跳到相应的子流程或者问题解决完了要从子流程跳回主流程,请大家注意看。如果没有碰到相关的问题的话,可以直接跳过这个问题的解决方案的子流程。

阅读全文 »

《C专家编程》笔记

发表于 2013-05-08 | 分类于 Diaries

《C专家编程》适合于对C语言有一定基础的朋友阅读。它对C语言的实现过程进行了更深一层的剖析,讲的还是很好的(除了个别知识已经过时)。下面就是我整理的一些笔记,大家可以参考看一下,并一起交流。

笔记是根据书的章节来的,但是并没有指出是哪一节,但保证是顺序记录的。

第一章 穿越时空的迷雾
1.const的意义
const float 类型并不是一个有限定符的指针,它的类型是指向一个有const限定符的float类型的指针,即const限定符是修饰float的,而不是float 的。
关于const等限定符的特性可根据下面的例子来更加深入的理解:
const int a; //const限定符修饰int p,即p为只读的整型变量;
int const a; //意义同上;
const int p = &a; //const限定符修饰int a,a为只读的整型变量,而整型指针变量p则没有限定修饰符,可读可写。所以我们可以改变指针p的指向(即可以执行p = &b),但是不能通过指针p来修改变量a的值
int const
p = &a; //意义同上;
int * const p = &a; //const限定符修饰整型指针p,所以指针p为只读变量,而整型变量a则没有限定符修饰。所以我们可以通过指针p来修改变量a的值,但是不能改变p的指向(即不能执行p = &b).

最后总结一下:限定修饰符离哪个类型近,就说明修饰哪个类型的变量。如int const p,const限定符离p这种类型近,而p的类型是int,所以const修饰的是int,而不是int ;而int const p,const离p这种类型近,p的类型是int ,所以修饰的是int *,而不是int。

2.以下赋值是错误的:
void foo(const char **p);

int main(int argc, char **argv)
{
foo(argv);
return 0;
}

因为ANSI C中对于赋值是如下规定的:
1.每个实参都应该具有自己的类型,这样它的值就可以赋值给与它所对应的形参类型的对象。
这说明参数传递的过程类似于赋值。所以const char 可以传递给char 类型的变量,但是反过来就会出错。

阅读全文 »

《C和指针》笔记

发表于 2013-04-25 | 分类于 Diaries

因为学习C语言也有两年了吧,所以这次看《C和指针》还是蛮快的,里面提到的大部分知识都已经见过了。但是某些内容还是属于比较经典的,我整理一下。想要详细了解的话,还是看书吧。这本书讲的很详细的。如果你刚刚学C或者学C不久的,都可以看一下。
  

第二章 基本概念

 1.编译过程:

    预编译(将头文件包含进来和替换#define宏),

    编译(把源文件(.c文

件)编译为目标文件(.o文件),

    链接(把目标文件链接起来,并链接程序中调用的

库函数,形成可执行文件) 

阅读全文 »

《C陷阱与缺陷》总结笔记

发表于 2013-04-23 | 分类于 Diaries

当学完了谭浩强的《C语言程序设计》之后,想扩展一下自己的C编程能力,然后去网上搜C进阶书籍之类的关键字,就看到有很多人都推荐这本书《C陷阱与缺陷》,然后我果断的买了一本(当然也下载了电子书)读,现在读完了,想写一个总结。

从整体来说,我从这本书里没有学到很多新的需要注意的东西,这本书里提到的很多缺陷在没读这本书之前就已经知道了。所以感觉收获不大。但是,这本书确实提到了一些C的缺陷,我们无法完全避免的。建议刚刚学习C的朋友可以看一下。

我整理了下面两点内容,是我之前没有注意到的或者觉得应该记下来的,拿出来与大家分享。

1.有符号整数的向右移位运算并不等于除以2的某次幂。如(-1)>>1不等于(-1)/2,前者的数为-1或别的数(本人在fedora18,gcc4.7.2版本下测试过),后者的值为0。

阅读全文 »

QT手工代码完成查找对话框(Find Dialog)

发表于 2013-04-16 | 分类于 Programming

今天又学了第二章,手工完成了一个查找对话框(Find Dialog)。下面贴出代码与大家共享哈。

代码如下:

阅读全文 »

QT手工代码实现slider和spinbox互连

发表于 2013-04-16 | 分类于 Programming

刚刚学QT,就现学现卖吧。哈哈。

首先贴出第一个例子,由于例子比较简单,就不贴到osc了,直接在博客里贴出来就好了。

实现了spinbox(微调框)和slider(滑块)相互连接的一个小框框,滑动slider,spinbox的值会跟着改变,同理,改变spinbox的值,slider也会随之改变。

代码如下:

#include <QApplication> //整个qt程序的资源管理

#include <QSpinBox> //微调框

#include <QSlider> //滑块

#include <QHBoxLayout> //横向布局

#include <QPushButton> //按钮

int main(int argc, char **argv)
{
QApplication app(argc, argv);

QWidget *window = new QWidget;
window->setWindowTitle(“Enter your age”); //设置窗口名称

QSpinBox spinBox = new QSpinBox;
QSlider
slider = new QSlider(Qt::Horizontal); //滑块横向摆放
QPushButton *quit = new QPushButton(“Quit”);

spinBox->setRange(0, 120); //设置滑块和微调框的值的范围
slider->setRange(0, 120);

QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int))); //这两个connect函数是把spinbox和slider互相连接起来
QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
QObject::connect(quit, SIGNAL(clicked()), &app, SLOT(quit())); //这个connect函数使得退出按钮关闭窗口

spinBox->setValue(30); //预设值

QHBoxLayout layout = new QHBoxLayout;
QVBoxLayout
wlayout = new QVBoxLayout;
layout->addWidget(spinBox); //把微调框,滑块以及退出按钮加入到布局中
layout->addWidget(slider);
wlayout->addLayout(layout);
wlayout->addWidget(quit);
window->setLayout(wlayout); //设置窗口布局

window->show(); //显示窗口
return app.exec(); //进入事件循环
}

 

整个QT程序代码就如上述了,比较简单的。

从基础学嘛。哎,学图形编程就是觉得挺好玩儿的,有志同道合的可以交流下哈。

QT简化编译工程的步骤——小程序

发表于 2013-04-11 | 分类于 Programming

学QT的时候,手工编写QT小程序之后,要编译的时候输入命令:

qmake -project

qmake projectname.pro

make

./projectname

才能顺利执行程序。太麻烦了。索性写一个小程序帮我把上面四步都完成。

代码地址:http://www.oschina.net/code/snippet_1023919_20243

学习linux网络编程的步骤

发表于 2013-04-10 | 分类于 Diaries

今晚在OSC逛的时候发现了一篇帖子,讲学习linux网络编程的步骤。其中推荐了几本书,感觉还不错的。

这里分享给各位。

这里列一下推荐的书籍:

1.《The C Programing Language》K&R,这本书是让连C语言都不懂的人看的(也可以用谭浩强的《C程序设计》代替它),如果你已经学过了,可以略过;

2.《Unix Network Programing》W.Richard Stevens,这本书是开始讲unix系列系统上的网络编程的,一共有三卷,非常经典;

3.《TCP/IP详解》,这本书是讲解TCP/IP协议族的书,也是共三卷,非常经典;

4.《Operating System - Design and Implement》,这是讲操作系统的书,用的minix系统。

 

具体的帖子地址如下:http://www.oschina.net/question/234345_42847

希望想要学习linux网络编程的朋友可以分享一下。本人也正在学习网络编程,我们可以沟通一下哈。

1…131415…17

Xinspace

Personal blog from xin.

170 日志
6 分类
1 标签
© 2019 Xinspace
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4