基础入门篇
文章平均质量分 74
华清远见嵌入式学院
专业始于专注,卓识源于远见
展开
-
嵌入式Linux学前建议(初学者必读)
目前,Linux作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。随着嵌入式行业的迅猛发展,嵌入式Linux凭借其系统发展的成熟度、市场应用的高份额也受到更多工程师朋友的青睐,越来越多的企业和研发机构都转向嵌入式Linux的开发和研究,这使得嵌入式Linux在新兴的嵌入式操作系统领域内也获得了飞速发展和广泛应原创 2009-05-11 09:03:00 · 1384 阅读 · 0 评论 -
什么是交叉编译
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行原创 2009-05-12 12:05:00 · 1015 阅读 · 0 评论 -
浅析标准I/O缓冲区
作者:华清远见高级讲师 曾宏安老师 学习过编程的朋友都知道ANSI C里定义的标准I/O是一种带缓冲的高级磁盘I/O,目的是尽可能减少使用read和write系统调用的次数,从而提高I/O效率。标准I/O提供了3种类型的缓冲类型。 Ø 全缓冲。在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。对驻留在磁盘上的文件的访问通常是由标准I/O库实施全缓冲的。原创 2009-05-18 17:26:00 · 1040 阅读 · 0 评论 -
让我们一起,向着嵌入式出发!
今天用了将近1个小时的时间,跟准备来华清远见参加嵌入式Linux工程师就业培训课程的一名在读研究生(电气自动化专业)进行了电话交流。电话沟通过程中能够充分体会到他的诸多困惑和无奈。而静心回想之后发现这些问题往往是在校大学生共同的疑惑,所以抽了点时间把这些问题整理出来和大家一起交流分享,希望能够对那些正准备向着嵌入式行业,特别是嵌入式Linux方向进发的朋友们有所帮助(仅代表本人个人观点,欢迎大家拍原创 2009-05-22 11:23:00 · 1082 阅读 · 1 评论 -
安装VMware虚拟机和Linux操作系统
作者:蒙洋,华清远见嵌入式培训中心讲师● 虚拟机简介所谓虚拟计算机(简称虚拟机),实际上就是一种应用软件,例如VMware实际上也只是一种应用软件,其特别之处在于,由它创建的虚拟机与真实的计算机几乎一模一样,不但虚拟有自己的CPU、内存、硬盘、光驱,甚至还有自己的BIOS。在这个虚拟机上,可以安装Windows、Linux等真实的操作系统,及各种应用程序。● 常见虚拟机软件目前流行原创 2009-05-31 14:55:00 · 2447 阅读 · 1 评论 -
移植内核中无法进入shell的问题
作者:孙天泽,华清远见嵌入式学院金牌讲师。近日,有学生在邮件中向我询问在移植Linux内核到2410开发板的问题。在内核已经运行起来后,始终无法看到login和shell。这是因为在高版本内核中已经不包含devfs,所以还需要在/dev中创建console设备文件。所以在创建这个console文件后,问题解决。具体命令如下:mknod -m 600 console c 5 1原创 2009-05-31 14:00:00 · 882 阅读 · 0 评论 -
bin目录下命令简要说明
作者:孙天泽,华清远见嵌入式学院金牌讲师。 有错误希望大家帮我找出来: 命令解释说明alsacard检测声卡alsaunmute静音设置arch查看硬件类型awk一种程序语言环境basename原创 2009-05-31 14:38:00 · 1668 阅读 · 0 评论 -
ARM、DSP、FPGA的技术特点和区别
在嵌入式开发领域,ARM是一款非常受欢迎的微处理器,其市场覆盖率极高,DSP和FPGA则是作为嵌入式开发的协处理器,协助微处理器更好的实现产品功能。那三者的技术特点以及区别是什么呢?下文就此问题略做了总结。 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。 ARM架构是面向低预算市场设计的第原创 2009-05-31 13:24:00 · 1775 阅读 · 0 评论 -
嵌入式Linux文件系统及其存储机制分析
作者: 华清远见嵌入式系统与通用PC机不同,一般没有硬盘这样的存储设备而是使用Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置,本文分析了嵌入式系统中常用的存储设备及其管理机制,介绍了常用的基于FLASH的文件系统类型。 1.嵌入式系统存储设备及其管理机制分析 构建适用于嵌入式系统的Linux文件系统,必然会涉及到两个关键点,一是文件系统类型的选择,它关系到文件系统的读写性原创 2009-05-31 13:36:00 · 807 阅读 · 0 评论 -
NandFlash系列之一:NorFlash与NandFlash对比
作者:刘洪涛,华清远见嵌入式培训中心高级讲师。FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从多个角度来对比介绍一下。在实际开发中,设计者可以根据产品需求来进行闪存的合理选择。 1、接口对比 NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NorFlash的特点是芯片内执行(XIP,eXecu原创 2009-05-31 13:38:00 · 1920 阅读 · 0 评论 -
NandFlash系列之二:S3C2410读写Nand Flash分析
作者:刘洪涛,华清远见嵌入式培训中心高级讲师。一、结构分析 S3C2410处理器集成了8位NandFlash控制器。目前市场上常见的8位NandFlash有三星公司的k9f1208、k9f1g08、k9f2g08等。k9f1208、k9f1g08、k9f2g08的数据页大小分别为512Byte、2kByte、2kByte。它们在寻址方式上有一定差异,所以程序代码并不通用。本文以S3C241原创 2009-05-31 13:39:00 · 759 阅读 · 0 评论 -
在nand flash上实现JFFS2根文件文件系统
作者:刘洪涛,华清远见嵌入式学院金牌讲师,ARM公司授权ATC讲师。 JFFS2是Flash上应用最广的一个日志结构文件系统。它提供的垃圾回收机制,不需要马上对擦写越界的块进行擦写,而只需要将其设置一个标志,标明为脏块,当可用的块数不足时,垃圾回收机制才开始回收这些节点。同时,由于JFFS2基于日志结构,在意外掉电后仍然可以保持数据的完整性,而不会丢失数据。本文阐述如何在nand f原创 2009-05-31 14:02:00 · 1012 阅读 · 0 评论 -
我的嵌入式学习笔记(2)--scanf使用常见问题及解决方法
作者:曹忠明,华清远见嵌入式学院讲师。在学习C语言的时候,printf()是我们学到的第一个函数,相信“hello world”这个例子大家都不会陌生吧,接着就是scanf()这个函数了,这个函数的功能是格式输入,它的函数原型是:int scanf(const char *format,…);这个函数的基本用法这里就不说了,这里介绍一些这个函数使用中常见的问题及解决方法:第一,连续原创 2009-06-02 16:30:00 · 751 阅读 · 1 评论 -
共用体的使用
作者:曾宏安,华清远见嵌入式学院高级讲师。在C语言中,不同的成员使用共同的存储区域的数据构造类型称为共用体,简称共用,又称联合体。共用体占用空间的大小取决于类型长度最大的成员。共用体在定义、说明和使用形式上与结构体相似。两者本质上的不同仅在于使用内存的方式上。 定义一个共用体类型的一般形式为:union 共用体名 { 成员表列;原创 2009-06-04 16:30:00 · 2404 阅读 · 4 评论 -
网络编程之监听套接字的误解
--华清远见嵌入式学院课堂问题笔记系列 作者:孙晓明,华清远见嵌入式学院讲师。这周同学们在做网络编程的时候,碰到一个监听套接字的问题,在这里大概描述一下:比如我的程序开了一个监听端口,与客户端建立连接之后,生成了一个新套接字。这时我执行了只关闭监听端口的语句,结果却发现监听端口和已建立的连接仍然存在。我都已经关闭了监听套接字,为什么客户端还可以继续往监听端口发信息?这到底是因为什么呢?原创 2009-06-05 14:06:00 · 1209 阅读 · 0 评论 -
嵌入式系统中的GUI开发
作者:穆煜,华清远见嵌入式学院讲师近年来手持式设备、消费类电子产品得到了飞速的发展。随着这些产品用户的增多,对其用户界面也提出了越来越多的要求。在这类产品刚进入市场的时候,例如,手机、PDA、数字机顶盒等,这类产品的用户界面都比较单一,而到了今天,我们可以看到,在市场销售的这些电子产品都具有漂亮的图形用户界面,甚至要求能够支持全功能的浏览器,使得用户能够随时随地进行网络信息的浏览。但是,由于消原创 2009-06-05 14:16:00 · 914 阅读 · 0 评论 -
关于FPGA学习的几个问题
作者:李秋凤,华清远见嵌入式学院FPGA讲师如何学好FPGA呢,很多人很困惑,多数停留在基础位置徘徊,我就这方面问题给大家谈几点自己的看法。1.基础问题FPGA的基础就是数字电路和HDL语言,想学好FPGA的人,建议床头都有一本数字电路的书,不管是那个版本的,这个是基础,多了解也有助于形成硬件设计的思想。在语言方面,建议初学者学习Verilog语言,VHDL语言语法规范严格,调试起原创 2009-06-03 18:08:00 · 1249 阅读 · 0 评论 -
Symbian和3G的关系
作者:华清远见嵌入式学院或许是由于近一段时间以来,3G的呼声是一浪高过一浪,或许是因为大家对新一代手机的关注热度节节攀升,也许是在许多文章中,Symbian的出现始终和3G息息相关的缘故,在和许多来华清远见咨询培训课程的朋友交流沟通的过程中,我不止一次地发现:有许多人把3G和Symbian完全等同了起来,甚至认为从事3G产品的开发就一定是从事基于Symbian手机操作系统的开发。个人认为这种混原创 2009-06-03 18:09:00 · 897 阅读 · 0 评论 -
Linux C中令人讨厌的段错误
作者:孙晓明,华清远见嵌入式学院讲师同学们在做练习的时候,编译完程序,执行的时候,有时会莫名的出现 “Segment fault”,即段错误,段错误是让许多C程序员都头疼的提示,因为对于这种模糊的提示,很难判断错误在哪里。那么什么事段错误呢?以及怎么发现程序中的段错误以及如何避免发生段错误呢?1.什么是段错误?所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由原创 2009-06-05 14:20:00 · 787 阅读 · 0 评论 -
如何计算结构体的大小
作者:曾宏安,华清远见嵌入式学院高级讲师。运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。 C语言中的构造数据类型有三种:数组、结构体和共用体。数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元原创 2009-06-08 14:09:00 · 1246 阅读 · 1 评论 -
基于FPGA的SOPC的几个概念
作者:李秋凤,华清远见嵌入式学院讲师。1、SOC(System On Chip)a):片上系统,单片上集成系统级、多元化的大功能模块,构成一个能够处理各种信息的集成系统 b):集成了许多功能模块的微处理器核的单芯片电路系统。c):可以大大缩小系统所占的面积,提高系统的性能和健壮性。d):已嵌入式系统为核心,集软硬于一体,并追求最高的集成度,是电子系统设计发展的必然趋势和最终目标。原创 2009-06-11 08:45:00 · 1559 阅读 · 1 评论 -
无名管道的用法
作者:曾宏安,华清远见嵌入式学院高级讲师。无名管道又被称为pipe,是进程间通信的一种方式。pipe具有以下特点:●只能用于具有血缘关系的进程之间●半双工的通信模式,具有固定的读端和写端●一种特殊的文件,存在于内存中。可通过read、write对其操作因为pipe存在于内存中,所以无法像操作普通文件那样通过指定路径来打开文件。通常的做法是在父进程中创建管道,再创建子进程。由于子原创 2009-06-12 10:07:00 · 991 阅读 · 0 评论 -
代码查看小妙招--vim ctags cscope的简单用法
作者:曹忠明,华清远见嵌入式学院讲师。是不是刚安装上ubuntu发现vim没有语法高亮显示、而别人的是头文件、变量……都有特定的颜色表示而郁闷。是不是常常为编译器提示某某某头文件找不到和忘记了某个函数的原型而去翻砖头那么厚的书而烦恼,呵呵,这些都是小问题。这里介绍一些小方法解决这些问题。首先解决不能显示语法高亮的问题:可能你也知道去掉/etc/vim/vimrc文件中的“"syntax原创 2009-06-17 16:18:00 · 1241 阅读 · 1 评论 -
【推荐】嵌入式Linux入门系列视频教程
主讲:曾宏安,华清远见嵌入式学院高级讲师。 第1讲1、嵌入式系统简介2、如何搭建开发环境第2讲1、编译一个简单的程序2、如何在平台上运行应用程序3、如何用gdb+gdbserver进行交叉调试第3讲1、eclipse 介绍和安装2、使用eclipse + cdt开发应用程序3、使用 eclipse + cdt 调试应用程序第4讲1、Makefile介绍2、如何编写Makefil原创 2009-06-18 10:58:00 · 5721 阅读 · 0 评论 -
位域与共用体
作者:曾宏安,华清远见嵌入式学院高级讲师。C语言提供了“位域”或者称为“位段”这种结构体,将一个字节中的二进制位划分为几个部分,每个域有一个域名,可以通过这个域名对对应的位进行操作。其定义域说明和使用语结构体相似,为:struct 位域结构名{ 位域列表>};位域列表如下;struct data{ unsigned int a:2;原创 2009-06-23 09:49:00 · 1093 阅读 · 0 评论 -
计算机专业,想搞嵌入式开发,从哪里入手?
? 你是否想进入嵌入式高薪领域,却感觉无从下手?? 你是否在看书、查资料、论坛提问中缓慢而吃力的前行?时间便是成本!学习的路上,我们更需要专家系统的指引,这样会事半功倍!华清远见—嵌入式Linux入门实战免费体验日,一天的时间,解决您的烦恼,绝对超值的回报!优势/特色:● 内容,传授最系统,最实用的技术,课程内容丰富!● 实践,教您完整的嵌入式开发流程,并配以真实的案例开发原创 2009-09-03 10:59:00 · 1036 阅读 · 0 评论 -
变量的存储类型
作者:曾宏安,华清远见嵌入式学院讲师。我们在程序中会经常定义一些变量来保存和处理数据。从本质上看,变量代表了一段可操作的内存,也可以认为变量是内存的符号化表示。当程序中需要使用内存时,可以定义某种类型的变量。此时编译器根据变量的数据类型分配一定大小的内存空间。程序就可以通过变量名来访问对应的内存了。如果说变量的数据类型决定了对应内存的大小,那么存储类型则影响着对应内存的使用方式。所谓使用方原创 2009-07-02 10:00:00 · 728 阅读 · 1 评论 -
关于二叉树的遍历
作者:曹忠明,华清远见嵌入式学院讲师。二叉树遍历就是沿某条搜索路径周游二叉树,对树中的每一个节点访问一次且仅访问一次。由于二叉树的递归性质,遍历算法也是递归的。二叉树的遍历有先序遍历、中序遍历和后序遍历。下面以(图一)中二叉树介绍一下这三种遍历。(图一) 二叉树1、先序遍历 先序遍历的遍历规则是(中 前 后),中就是父节点,前就是左孩子,后是右孩子。既先访问当前节点原创 2009-09-04 12:13:00 · 644 阅读 · 0 评论 -
程序运行时堆区和栈区的分配
作者:孙晓明,华清远见嵌入式学院讲师。栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少; 堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长。 看看下面一段代码: #include using namespace std; void main() {原创 2009-09-04 12:17:00 · 723 阅读 · 0 评论 -
C语言声明学习之初级篇
作者:杨硕,华清远见嵌入式学院讲师。C语言为我们定义了四种基本数据类型:整型,浮点型,指针以及聚合类型(数组和结构体等),在此基础上,我们就可以声明变量。我们平时经常说定义一个某种类型的变量,其实这样说不确切,应该说是声明变量。变量声明的基本形式是:说明符(一个或多个) 声明表达式列表比如说:int a, b, c, d;C语言中对指针的声明比较有代表性,我们来看一下:比如声明原创 2009-09-04 12:19:00 · 559 阅读 · 0 评论 -
浅析函数传参及返回值
作者:曹忠明,华清远见嵌入式学院讲师。很多刚学指针的人多会遇到这样的情况,就是你给一个函数传递一个指针变量,在这个函数中为这个指针申请空间,赋值,可是等函数结束后这个指针还是一个空指针,对其的操作编译器会报段错误或干脆给你一个莫名其妙的值,这是一个随机数。如:#include #include int my_fun(int *p) { p = (in原创 2009-07-06 15:42:00 · 802 阅读 · 1 评论 -
Linux发行版
作者:孙天泽,华清远见嵌入式学院金牌讲师。从1991年诞生的那天起,Linux内核就在全世界的黑客们精心呵护下不断发展壮大。很多Linux Fans想为Linux内核做贡献,但或许是包括技术在内的等等原因,你的Ideas不一定会被内核容纳。对于操作系统来说,内核是一个容不得半点沙子的圣地。相对Linux内核的苛刻,系统上层的服务和应用则显得友好的多。同时也是更多人关注的。毕竟对于Linux用户原创 2009-07-06 15:44:00 · 980 阅读 · 0 评论 -
C语言声明学习之高级篇
作者:杨硕,华清远见嵌入式学院讲师。 C语言的设计哲学要求对象的声明形式和它的使用形式尽可能相似,比如一个int类型的指针数组被声明为int *p[3];并以*p[i]这样的表达式引用或者使用指针所指向的int数据,所以它的声明形式和使用形式非常相似。这样做的好处是各种不同操作符的优先级在“声明”和“使用”时是一样的,而缺点恰好在与C语言的操作符的优先级过于复杂(有15级或者更多,取决于你原创 2009-09-17 10:46:00 · 819 阅读 · 0 评论 -
C语言静态函数库的制作和使用方法
作者:杨硕,华清远见嵌入式学院讲师。一.库函数简介: C语言中有一些函数会执行一些标准任务,可以事先对这些函数进行编译,然后将他们放置在一些特殊的目标代码文件中,这些目标代码文件称为库。库文件中的函数可以通过连接程序与应用程序进行链接,这样就不用在每次执行程序时都对这些通用的函数进行编译了。标准的C函数库名称为libc,包含了诸如内存管理或者输入输出操作的基本函数。这些库放置在系统的原创 2009-09-18 10:07:00 · 1799 阅读 · 0 评论 -
向着嵌入式出发
作者:华清远见 今天用了将近1个小时的时间,跟准备来华清远见参加嵌入式Linux工程师就业培训课程的一名在读研究生(电气自动化专业)进行了电话交流。电话沟通过程中能够充分体会到他的诸多困惑和无奈。而静心回想之后发现这些问题往往是在校大学生共同的疑惑,所以抽了点时间把这些问题整理出来和大家一起交流分享,希望能够对那些正准备向着嵌入式行业,特别是嵌入式Linux方向进发的朋友们有原创 2009-09-23 16:18:00 · 1035 阅读 · 0 评论 -
嵌入式Linux学前建议(初学者必读)
目前,Linux作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。随着嵌入式行业的迅猛发展,嵌入式Linux凭借其系统发展的成熟度、市场应用的高份额也受到更多工程师朋友的青睐,越来越多的企业和研发机构都转向嵌入式Linux的开发和研究,这使得嵌入式Linux在新兴的嵌入式操作系统领域内也获得了飞速发展和广泛应用原创 2009-10-10 11:29:00 · 1198 阅读 · 0 评论 -
工作十几年,对时间管理,感悟颇多,分享一下
作者:贾燕枫,华清远见嵌入式学院讲师。今天在整理相关嵌入式学院职业素质课的课件和案例时,看到有关时间管理的这部分内容。虽然已经在行业内努力工作了十几年(基本还算得上是个符合企业需要的老员工,呵呵!),但是在认真学习有关时间管理的一些方法之后,依然感觉收获颇多!所以希望能跟大家交流分享一下我的感受,期待能够有帮助!你的时间利用率高吗? 在大多数人的印象中,往往都会认为:现代化的办公方原创 2009-10-26 17:09:00 · 738 阅读 · 0 评论 -
浅谈malloc与 kmalloc、cmalloc、realloc、new 的区别
作者:陶宁,华清远见嵌入式学院讲师。相关函数原型:1. Malloc 作 用: Malloc用于动态申请存储空间,它不是关键字,而是一个申请内存的函数用 法:Malloc 返回一块内存地址的指针,否则会返回空指针null,这里要注意的是,当内存不再使用的时候,用free()函数进行对内存的释放。2.calloc 作 用:calloc()函数有两个参数,分别原创 2010-01-18 17:41:00 · 1266 阅读 · 0 评论 -
常见网络函数的使用
作者:陶宁,华清远见嵌入式学院讲师。在实验过程中,有很多同学经常会问一些函数及该函数的使用方法,下面对网络部分函数进行一次讲解。1. gethostname 获得主机名 2. getpeername 获得与套接口相连的远程协议地址,用于从端口s中获取与它捆绑的端口名,并把它存放在sockaddr类型的name结构中。它适用于数据报或流类套接口。 3. get原创 2010-01-27 10:44:00 · 1198 阅读 · 0 评论 -
C语言类型转换
作者:林世霖,华清远见嵌入式学院深圳中心讲师。类型转换是C语言中常识性的知识点,但不注意又会有让人迷惑的时候,来看一道笔试题:以下两个程序片段A和B,问那个for循环能运行?A:--------------------------------------------------------------------------------unsigned short i;原创 2010-02-05 09:17:00 · 882 阅读 · 0 评论