嵌入式linux开发环境的搭建实验报告(嵌入式linux开发实践教程)

嵌入式linux开发

嵌入式系统是一个很广泛的概念,对它的定义也很多,我觉得理解嵌入式系统关键抓住下面几点:

1。嵌入式系统是相对于PC平台而言的,嵌入式了使用的平台一般是针对ARM,PPC,DSP等非PC平台的,所以使用的编译和调试工具不是VC6.0,而是不同的平台需要专门的编译开发工具,交叉编译是嵌入式特有的概念;

2。嵌入式系统往往指带有操作系统的系统,以前简单的系统可以直接在裸机(如51单片机)上开发,而现在OS成为嵌入式的一个基本特征,已经有各种实时内核或者全功能的OS,因此对程序员要求较高

3。嵌入式系统往往包括软件和硬件两个部分,软件开发人员往往也需要知道硬件的知识,只有知道硬件的特性才能开发出高性能的程序。另外不想在PC上开发,驱动程序都已经有了,在嵌入式系统中由于所接的外设复杂,很多时候需要自己编写驱动程序,结果是在程序开发之前一般需要看硬件手册。

从上面的特点看出嵌入式开发与PC上的程序开发是不同的,在PC上开发主要是应用程序的开发,侧重想法,而嵌入式开发则要考虑软硬件各个方面而且通常要购买昂贵的开发板和仿真器,因此起点相对较高。

我接触嵌入式是在大四的时候,当时已经学习了微机原理、单片机和DSP等课程,我一直希望能做出一个完整的系统,所以我第一次明白嵌入式系统是什么的时候就对它产生了浓厚的兴趣,然而兴趣是高,缺乏人指导,我依然还是菜鸟一个,认识到实践和长时间积累相当重要。我都是在课余自学嵌入式,嵌入式学习之路走得很艰难,其中积累了点点经验,总结如下:

1。嵌入式从何学起?

这是一个初学者很想知道的问题,然而又是很难回答的问题,我初学时也是一样的。学习嵌入式不能着急,我觉得最重要的还是打好基础,从简单的做起。

其中的基本功主要有:

微机原理和接口要很熟悉,至少知道一门汇编语言,不是要你去记指令,而是要弄清楚处理器执行的过程和常用的指令执行的操作;

熟悉常用的体系结构。ARM架构处理器应用越来越广泛,值得研究一下,当然还有很多的体系架构,开发时再看硬件手册这个过程就是训练自己阅读手册和查询手册的能力,手册很长,往往只要知道个大概,细节需要在使用时查询;

C语言编程:C语言大家都会用,我知道在学校学习时都是基于PC,基本不会用C语言程序访问寄存器或者外设,而在嵌入式开发时你会发现有很多地方需要小心,举个例子一般中断服务程序需要访问的全局变量需要用volatile申明;

有了上面的基本功就可以开始最简单的嵌入式开发之路了。

2。不带OS的嵌入式开发

先不要急着看什么操作系统原理,那些东西如果没有开发经验的话不可能看得很明白的,首先还是找到嵌入式开发的感性认识。我推荐从51单片机开发开始,因为51单片机便宜而且网上有很多现成的代码可以参考,先编写一些简单的汇编语言程序,然后学习C51进行c语言编程这个过程关键是熟悉交叉编译和开发流程,熟悉访问硬件的方法,学习编写中断服务程序。另外,这个时期可以学习嵌入式c编程的注意事项《c与c++嵌入式系统编程》《C陷阱与缺陷》是不错的书,值得看看。

3。带OS的编程

一旦运行了OS,编程难度加大了,思维和编程方法与不带OS的大不一样,这个转变是很艰难的。学习操作系统的原理是必须的,只有很好地认识了操作系统才可能进一步在OS上编程,比如进程、调度、同步和互斥、优先级翻转等。OS分成简单的实时内核和复杂的全功能OS,uCOSII是典型的实时内核,linux是典型的全功能的OS,不同的OS满足不同需求,要根据自己的设计来选择合适的OS。嵌入式很多处理要求是实时的,需要保证性,编写程序和选择OS要特别注意。推荐从uCOS入手,因为可以获得源码,而且网上有很多的资料,已经被移植到很多平台。到了这个时候估计自己可以自学了,要多做几个项目,在项目中摸索,要知道编写程序容易,但是要编写稳定可靠的程序绝非易事,有很多书值得一看。我目前也是在学习linux,开始编写驱动程序了,我想这还是一个开始,以后要学的东西还很多啊^_^

以上说得很简单,实际操作起来则需要付出很多努力,需要学习很多东西,这里只是给出学习的大概步骤,给初学者一个整体概念,希望仍在困惑中的人少走一些弯路.

嵌入式ARM linux操作系统中如何构建交叉开发环境?

这个问题相当专业了,之前我去周立功那边了解过的。

按照以下步骤进行安装:

1) 安装32位的兼容库和libncurses5-dev库

在安装交叉编译工具之前需要先安装32位的兼容库和libncurses5-dev库,安装32兼容库需要从ubuntu的源库中下载,所以需要在Linux主机系统联网的条件下,通过终端使用如下命令安装:

vmuser@Linux-host ~$sudo apt-get install ia32-libs

若Linux主机系统没有安装32位兼容库,在使用交叉编译工具的时候可能会出现错误:

-bash: ./arm-fsl-linux-gnueabi-gcc: 没有那个文件或目录

在终端中使用如下命令则可以安装libncurses5-dev库。

vmuser@Linux-host ~$sudo apt-get install libncurses5-dev

如果没有安装此库,在使用make menucofig时出现如下所示的错误:

*** Unableto find the ncurses libraries or the

*** required headerfiles.

*** \'makemenuconfig\' requires the ncurses libraries.

***

Installncurses (ncurses-devel) and try again.

***

make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1

make: *** [menuconfig] 错误 2

2) 安装交叉编译工具链

将交叉编译工具“gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2”文件通过U盘的方式拷贝到Linux主机的“/tmp”目录下,然后执行如下命令进行解压安装交叉编译工具链:

vmuser@Linux-host ~$ cd /tmp

vmuser@Linux-host ~$ sudo tar -jxvfgcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2 -C /opt/

vmuser@Linux-host /tmp$ # 输入vmuser用户的密码“vmuser”

执行完解压命令后,交叉编译工具链将被安装到“/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0”目录下。交叉编译器的具体目录是“/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin”,为了方便使用,还需将该路径添加到PATH环境变量中,其方法为:修改“/etc/profile”文件,具体操作方法如下:

在终端中输入如下指令

vmuser@Linux-host ~$ sudo vi /etc/profile # 若提示输入密码,则输入“vmuser”

用vi编辑器打开“/etc/profile”文件后,在文件末尾增加如下一行内容:

export PATH=$PATH:/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin

文件修改并保存后,再在终端中输入如下指令,更新环境变量,使设置生效。

vmuser@Linux-host ~$source /etc/profile

在终端输入arm-fsl-linux-gnueabi-并按TAB键,如果能够看到很多arm-fsl-linux-gnueabi-前缀的命令,则基本可以确定交叉编译器安装正确,如下图所示。

求嵌入式linux开发详细流程(步骤)?

1.首先,建立交叉编译环境:交叉编译是指:在PC机上编译,在目标板上执行,我PC是linux+ arm-elf-gcc编译器.扳子是ARM3000.板子上的系统是uclinux,这时一个剪裁的很小的实时嵌入式linux操作系统.推荐使用这个.

2.然后就是你写程序喽,不过注意可能有些库函数不能用,因为哪个编译器稍微受限一点,不是所由的c库函数都支持,不过一般开发的都有.

3.连起你的主机和开发板,这个你会不?要连两个:串口(用来控制板子)和以太口(用来下载程序),我们板子上这些外设都有,你要使没有可以用其他的口代替传程序,但串口可是该有的阿!

4.在你主机上编译程序生成目标代码,建议用makefile文件来组织你的联编关系.

5.把生成代码下载到目标板执行调试.我是用的主机的NFS(网落文件)服务,下载到目标板的.

6.注:目标板是怎么控制的呢?是用串口控制的,可用minicom,设置好你要控制的串口,也应该是你连板子的那个.在命令行里敲上minicom,即进入minicom截面,开启你的板子,应该就是板子uclinux系统解压安装的画面了.然后用ifconfig eth0.....

配置ip,这个ip就是你板子的ip了,注意与主机一个网段.然后mount -t nfs 主机ip:/uclinux /板子上的一个目录,就把主机的 uclinux目录放到板子上了(这么说其实不合理,应该叫挂载). 然后找到你刚才一经编译好的哪个目标代码执行即可.

因不了解你的具体环境和配置,暂说这些,有问题可再联系:)

怎样搭建一个嵌入式开发平台(ARM LINUX)?

搭建嵌入式Linux平台其实就是在宿主机与目标机之间的连接,宿主机一般就是PC,目标机就是开发板。软件:在宿主机上需要Linux的发行版,目标机上需要移植Linux内核。交叉编译实现:先在宿主机上安装交叉工具链(ARM的),网上很多下载,也可以自行订制。然后用交叉工具链编译程序部署到目标机才可以运行。搭建平台还远不止这些,你还要移植bootloader(推荐U-Boot),移植Linux内核之后还要制作根文件系统(相当于计算机的硬盘),否则系统是无法启动的。

指导教程有很多,百度文库里面就有,只要搜索“Linux移植”一般整个搭建过程都会有叙述,但是整个的搭建过程因目标板、因内核、因交叉工具链等等的同而不同,没有普适的办法,整个移植的过程也会出现各种问题,耐心搭建吧,呵呵,祝你好运!

嵌入式Linux开发 1 | CentOS7搭建C语言开发环境

yum update -y

新建hgfs

mkdir -p /mnt/hgfs

查看已经共享的文件夹

vmware-hgfsclient

挂载Downloads文件夹

vmhgfs-fuse .host:/Downloads /mnt/hgfs

yum install ntfs-3g

fdisk -l

mkdir -p /mnt/mydev mount /dev/sdb1 /mnt/mydev

开发和运行都在同一(类)主机上的开发方式.

开发在宿主机(一般使用PC),运行在目标机(嵌入式系统)的开发方式.

第一种:适用于当前用户

vim ~/.bashrc

source ~/.bashrc

第二种:适用于所有用户 推荐

vim /etc/profile

source /etc/profile

vim ~/.bashrc

source ~/.bashrc

更新中......

嵌入式linux课程设计

Ⅰ 跪求 ARM嵌入式linux系统开发详解(珍藏版)pdf

珍藏版啊。。

Ⅱ 学嵌入式linux需要先学什么

刚入门的时候,淘宝买一块cortex m3开发板即可入手,通过项目,你需要了解:任务调度、进程间通信、内存管理、设备驱动、文件系统、TCP/IP协议栈、同步异步、中断、软件架构插件化等等基本原理,这些对你后面转Linux应用开发,安卓开发,后台开发大有好处。

到这一步,就看自己职业方向想往哪里发展,如果是想深入IOT物联网做端云连接,那么可以把几种基本总线驱动,I2C、SPI、USART理解透,如果是想拥抱互联网转入应用开发,那么可以把基础组件,如协议栈、文件系统吃透,BAT面试不是很难,问的都是这些基础。

顺便说一下,学东西就要学对市场有用的,不要过于学习屠龙之术,炫技给个人带来不了财富,公司需要的是能干活的人。

不准备讲过于偏硬件的知识如Cortex-M3的多种中断模式,操作寄存器组,芯片降噪等内容,而是专注于操作系统基本知识和项目经验,这些对于开发者后面接触Linux系统大有脾益,这些软件开发经验也是去互联网公司看重的能力。如有需要学习Linux命令请如下查找:

Ⅲ 基于linux嵌入式平台井字棋课程设计

基于linux嵌入式平台井字棋课程

这么肯定还好的

Ⅳ 跪求一份完整的嵌入式Linux方面的C项目实例

怎样的人适合学习嵌入式?

学习嵌入式需要有一定的基础,这些基础大概包括下面两点:

学过c语言,汇编;

对微控制器有一定了解。

一般理工类(计算机,自动化,电子类专业)的学生大三学比较合适。因为到了大三,一般学过了c语言及汇编,虽然大部分学生没有独立写过一个程序,但至少上过这门课,自己也看过相关知识点;而且上过8051等微控制器原理的课程,也看过类似的教课书。

具备以上基础的人,也不是谁都可以学。因为嵌入式学习门槛比较高,难度比较大,不但要有一定的毅力,而且要触类旁通,如果太死板也很难学会。

概括的说学习嵌入式还必备下列性格:

热爱研发!

切忌浮躁!

执着,顽强,自信!

举一反三!

如果你符合以上条件,完全可以经过努力把嵌入式学好,我了解到的在华清远见学习的一个同学,之前基本上什么基础都没有,写一个“hello world”程序都为难,编译了几次才通过,但是经过四个月的努力,在华清远见专业老师和同学们的热心帮助下,从一个完全的菜鸟变成了入门级别的linux工程师了,找到了一份做应用开发的工作,工资大概有四千吧,还算不错。

LZ要自学的话,可以多到华清远见的网站上看看他们的课程设置,就知道自己该学些什么,还有很多学习资料和视频可以下载,另外华清远见出版的40多本嵌入式专业畅销书,外面各大书店和图书馆都有,你都可以去翻翻看看。

祝你早日学有所成!

请参考,希望能帮到你。

Ⅳ 做嵌入式原理课程设计 linux内核精简 是什么意思,该怎么做

OK 我发给你 .

Ⅵ 求嵌入式linux开发详细流程(步骤)

建立以Linux系统为基础的开发环境;

配置开发主机(MINICOM调试嵌入式开发板、NFS网络文件系统,防火墙);

建立引导装载程序BOOTLOADER(公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等);

下载别人已经移植好的Linux操作系统(如μCLinux、ARM-Linux、PPC-Linux等);

建立根文件系统(包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等);

建立应用程序的Flash磁盘分区,一般使用JFFS2或YAFFS文件系统;

开发应用程序,应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中;

烧写内核、根文件系统、应用程序、发布产品。

Ⅶ 嵌入式Linux课程设计源代码

Linux课程体系了解一来下:

Linux云计源算网络管理实战

Linux系统管理及服务配置实战

Linux Shell自动化运维编程实战

Linux云计算网络管理实战

大型网站高并发架构及自动化运维项目

网站安全渗透测试及性能调优项目实战

公有云运维技术项目实战

企业私有云架构及运维实战

Python自动化运维开发基础

Python自动化运维开发项目实战

Ⅷ 嵌入式ARM/LINUX毕业设计

有办法的话找个附近的嵌入式公司选他们的板子在上面做个小扩展性开发。最好选嵌入式教授采购实验设备的代理 之类的,甚至可以“开发”一款他们已有的功能,抄一下写个论文即可。

Ⅸ 学习嵌入式linux流程

嵌入式学习是一个循序渐进的过程,有C语言基础还是比较好的,C++的话不搞上层应用就用不上,如果是希望向嵌入式Linux方向发展的话,关于这个方向,我认为大概分3个阶段:

1、嵌入式linux上层应用,包括QT的GUI开发

2、嵌入式linux系统开发

3、嵌入式linux驱动开发

嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等

Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。

你可以尝试以下路线:

(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。

推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。

(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。

(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。

推荐书籍:《UNIX环境高级编程》(第2版)

(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。

(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。

(6) 驱动开发

linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。

linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!

其实LZ可以到一些嵌入式培训机构的网站上看一下他们的课程设置,就会在脑子里有个清晰的思路,比如华清远见的官方网站,上面的嵌入式内容很丰富,嵌入式方面的信息更新也很迅速,没事可以去转转。

Ⅹ 求嵌入式Linux 课程设计,随便什么题目,用C或C++写的!要有完整的源代码,有实验报告就更好了!

网上很多啊,自己去搜一个就好了,但是要改动一下,不然会重复的...弱弱的问一下,你是南京某高校的么?

未经允许不得转载:便宜VPS网 » 嵌入式linux开发环境的搭建实验报告(嵌入式linux开发实践教程)