嵌入式系统概述3-嵌入式系统的开发流程和学习基础、方法

article/2025/4/20 5:37:39

嵌入式系统的开发流程

以带有操作系统的32位微处理器为核心的嵌入式系统为例:

第一步:建立开发环境

操作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如,arm-linux-gcc),或者安装产品厂家提供的相关交叉编译器;

第二步:配置开发主机

配置串口通讯工具,一般的参数为波特率115200 Baud/s,数据位8位,停止位为1,无奇偶校验,数据流控制设为无。在Windows下的超级终端的配置也是这样。该软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。

第三步:建立引导装载程序BOOTLOADER

从网络上下载一些公开源代码的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如,三星的ARM系列芯片,这样就需要编写开发板上FLASH的烧写程序,可以在网上下载相应的烧写程序,也有Linux下的公开源代码的J-FLASH程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果用户购买了厂家的仿真器比较容易烧写FLASH,虽然无法了解其中的核心技术,但对于需要迅速开发自己的应用的人来说可以极大提高开发速度。

第四步:下载已经移植好的Linux操作系统

如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过,下载后再添加特定硬件的驱动程序,然后进行调试修改。

第五步:建立根文件系统

在最基本的根文件系统基础上,根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本。

第六步:开发应用程序

可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,调试通过后,烧写入目标芯片,完成设计。

2 嵌入式系统的学习基础和方法

1.软件方面的知识:

嵌入式是软硬件结合的技术,搞嵌入式系统的人应对ARM处理器工作原理和接口技术有一定的了解,包括汇编指令系统。不了解处理器原理,就没办法写出驱动程序。在嵌入式开发的一些关键部分,如Bootloader等,除C语言程序外,还有一部分汇编程序。

从事嵌入式系统的人至少须掌握一个嵌入式操作系统,目前主要包括:

(1)传统的经典RTOS:最主要的是Vxworks操作系统,以及其Tornado开发平台。Vxworks出现早,实时性很强,并且内核可极微,可靠性较高。特别在通信设备等实时性要求较高的系统中,有比较广泛的应用。

(2)嵌入式Linux操作系统:嵌入式Linux广泛应用的原因当然是免费、开源、支持软件多、支持者多,成本也低。

(3)Windows CE嵌入式操作系统:Windows CE是微软的操作系统,也有很大的市场份额,特别是在PDA、手机等界面要求较高或者要求快速开发的场合。

2.硬件方面的知识:

模拟电路、数字电路、计算机组成原理、微处理器结构、单片机等硬件课程是从事嵌入式开发所要掌握的。

嵌入式本身就是从单片机发展过来的,如今很多单片机都已经带操作系统,嵌入式开发领域,驱动人才缺乏。写驱动必须掌握操作系统的内部工作原理,包括相关的硬件知识,即所谓的软硬通吃,所以这方面的人才是一将难求。

目前状况,硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。

从软件方面讲,也有相当部分的成熟软件系统。同时由于是研究热点,所以我们可以在网上找到各种各样的免费资源,从各大厂商的开发文档,到各种驱动,程序源代码,甚至很多厂商还提供微处理器的样片。这对于我们从事这方面的研发,无疑是个资源宝库。对于软件设计来说,不管是上手还是进一步开发,都相对来说比较容易。这就使得很多生手能够比较快的进入研究状态,利于发挥大家的积极创造性。一些被大家广为认可的学习方法如下:

C语言开发经验

条件:Linux、Windows均可。

方法:主要是掌握ANSI C编程(不包括qt图形可视化开发)

网络、操作系统、体系结构

条件:Linux,各种书,算法、例程。

方法:通过C编程实现简单的网络等知识的算法和过程。

嵌入式系统概念

条件:各个嵌入式网站,讨论组,书籍

方法:多交流,勤思考。

嵌入式开发实践

条件:嵌入式系统开发工具的demo版,包括编译器,仿真器。

方法:一个是基于ARM的嵌入式系统开发,另一个是linux下的应用软件开发。第一个是针对硬件开发而言的,而第二个则是针对软件开发而言的。

硬件开发

条件:各种嵌入式芯片、存储器等电路器件,protel99等电路设计软件,电路板制作。

方法:这时候该有开发条件了,最起码是51系列,这个比较方便。

电路的设计内容较多,不过看起来吓人,实际上比软件要简单的多。只要下功夫,实践会告诉你一切! 


http://chatgpt.dhexx.cn/article/XmcU74fc.shtml

相关文章

嵌入式系统开发概述

1、嵌入式系统是什么 2、嵌入式系统的组成 3、嵌入式开发与传统单片机开发不同 4、嵌入式应用和就业方向 5、学习路线 1、嵌入式系统是什么? 嵌入式系统(百度):嵌入式系统是以应用为中心,以计算机技术为基础&#…

mysql给用户授予某数据库权限_mysql 数据库授权(给某个用户授权某个数据库)

mysql 数据库授权(给某个用户授权某个数据库) 2016-10-10 带你飞 1.新建用户。 //登录MYSQL >mysql -u root -p >密码 //创建用户 mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"))…

MySQL数据库用户管理以及数据库用户授权

目录 一、数据库用户管理 1、新建用户 2、查看用户信息 3、重命名用户 4、删除用户 5、修改当前登录用户密码 6、修改其他用户密码 7、忘记 root 密码的解决办法 7.1 修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql 7.2 使用 update 修改 root 密…

Mysql8数据库如何给用户授权

查看用户已有权限 SHOW GRANTS FOR [用户名];使用root用户授予所有权限 -- 授权 GRANT ALL PRIVILEGES ON [数据库名].[表明] TO [用户名][连接地址] WITH GRANT OPTION; -- 刷新权限 FLUSH PRIVILEGES;例如给numb用户的所有连接地址授权numb数据库所有表权限如下&#xff1a…

mysql授权用户多个数据库_MySQL创建用户授权数据库

MySQL等主流数据库的最高权限一般是root用户. 有时我们需要提供数据库的账号和密码以使用某些服务. 但实际上每个服务只会使用1个左右的数据库. 直接将root账号和密码随意分配是一件很危险的事情. 所以我们需要单独的创建用户, 并授权需要的数据库给它. 用户管理 创建用户 创建…

Mysql数据库给用户添加权限

1、Mysql下创建新的用户 新创建的用户默认是没有任何权限的。 语法格式: create user 用户名 identified by 密码; 2、给用户分配权限 语法结构: grant 权限 on 数据库.数据表 to 用户 主机名; 3、精确的控制用户的权限 略 参考博文: m…

mysql怎么给用户加权限_mysql怎么给用户加权限

mysql给用户加权限的方法:首先创建用户,代码为【create user 用户名 identified by 密码】;然后给用户分配权限,代码为【grant 权限 on 数据库.数据表 to 用户 主机名】。 mysql给用户加权限的方法: 一、Mysql下创建新…

matlab实现参数方程求导(paradiff函数)

目录 总述函数说明应用举例函数实现 总述 函数说明 function resultparadiff(y, x, t, n) %paradiff %参数方程求导的递归实现 % 调用格式: % y1 paradiff(y, x, t, n) % 其中:yf(t), xg(t), t为参数, n为导数阶次 % % Examples: % 已知参数方程…

MATLAB 函数求导

示例:求函数 的导函数并画出两个函数的图像。 clear clc close all %% % 创建符号变量sx syms sx % 创建关于符号变量sx的符号函数sf sf1/(1exp(-sx)); % 将符号函数sf转化为普通函数f fmatlabFunction(sf); % 对符号函数sf求得导函数sdf sdfdiff(sf); % 将导函数…

matlab匿名函数求导,MATLAB进行匿名函数求导出现错误

在视距传输情况下求干扰(上行用户对下行基站传输的干扰)的拉氏变换,首先求得干扰服从LOS下的表达式如下: LOS.png (9.08 KB, 下载次数: 11) LOS传输干扰的拉氏变换 2017-3-18 20:39 上传 程序思路如下: 首先先对含有t的表达式进行描述(求解过程第一步),接下来对含有t的表达…

利用Matlab求解函数导数并绘图

利用Matlab求解函数导数并绘图 题目要求 解题思路 1、定义符号变量 x ,并建立函数表达式 f(x); 2、利用 diff 函数求解 f(x) 的一阶导数和二阶导数; 3、利用 subplot 函数确定多行多列图像位置; 4、利用 ezplot 函数绘制符号函数图像 程序…

matlab二次求导函数,原来可以这样求导函数,再复杂的函数求导不再话下!

还用去翻标准答案吗? 我们以下面这个函数为例: 一阶一维(这里的阶是求几阶导函数的阶,维指的是函数表达式的变量个数): 输入以下命令,其中diff(函数表达式名)是MATLAB内置的求导函数名。 >> syms x; >> f(…

用matlab来计算函数,Matlab函数求导教程

Matlab是一款比较出名的商业数学软件,在这个软件,我们可以解答多种数学难题,但是对于刚接触这个软件的朋友来说,Matlab怎么进行函数求导是一个很大的难题,那么如果你不懂的话,赶紧看看小编整理的Matlab函数…

MATLAB导数计算

通过调用diff命令,我们可以使用MATLAB计算符号导数,只需要把要求的求导函diff命令 例一:计算 syms x t fx.^3x.^2 gcos(10.*t) diff(f) diff(g) 输出结果: 例二:我们要得到f更高阶的导数,我们使用diff(f,n…

WEB前端--SEO优化学习笔记(9)

1.seo是什么 大家口中的SEO(Search Engine Optimization),中文翻译为“搜索引擎优化”,从本质上来说,其实就是如何迎合搜索引擎的规则,使得网站在搜索结果中能有更好的排名,比如一个PDA行业网站…

前端性能优化有哪些方法

1. 浏览器http请求并发前端如何优化 减少网络请求数: 1) 配置304请求,提高请求速度(这属于后端配置) 2) 将图标合成雪碧图,减少图片数量,减少http请求数 3) 使用webpack合并css和js,减少文件数量,减少htt…

前端性能优化CDN

就是将源站的静态资源(图片视频、html/css/js安装包apk等)缓存到位于不同区域的CDN节点服务器上,通常是终端网络提供商的机房,当用户访问网站时,会去离用户距离最近的CDN服务器上获取,从而避免了网络拥塞&a…

前端SEO优化方案

一、关于页面加载速度: 1、一般我们将CSS,JS文件通过外链的方式引入页面,当这些外链数量过多,那相应HTTP请求次数也要增加,这里我们尽量合并CSS,JS文件夹,压缩一些不需要后期维护的CSS,JS代码,CSS文件推荐压…

前端SEO优化技术汇总

一、title、alt、h1 title: 网站头部标签<head>下的title,网站名称 备注&#xff1a;这里为什么不说标签中的title属性&#xff0c;&#xff0c;虽然鼠标上移可以显示图片名字&#xff0c;但是它跟SEO没一丝联系所以我们不关注它。 例如&#xff1a;<img title"…

⛳前端进阶:SEO 全方位解决方案

&#x1f33b; 前言 SEO 代表搜寻引擎最佳化/搜寻引擎优化(英文全名Search Engine Optimization&#xff0c;简称SEO)&#xff0c;是指通过了解搜寻引擎的自然排名的算法逻辑&#xff0c;以提高目标网站在有关搜寻引擎内排名的方式。 网站的 SEO 至关重要&#xff0c;它可以让…