❶ 如何规范写嵌入式系统开发文档
系统设计完应该仅仅些源代码应该包括各种各发文档自系统维护升级都参考作用系统发完究竟应该包含些文档些文档般完应该包含哪些内容系统发规范化问题系统发规范化仅利于自利于公司更利于新手规范化设计让工程师工作更高效已经用争论事实现型软件工程发面已经做相单片机嵌入式系统发面规范化工作却待我共同探讨内些公司研发员种误导--快写代码快让我看见功能要做其完功能些都我设计导入种误区:部间都写代码改代码 嵌入式实系统复杂度提高设计工程师定义析系统初始要求必须认真考虑软硬件协同关系通设计工程师必须权衡系统灵性、速度、本、计划用工具间关系本文打算描述嵌入式系统实系统关键特性并探讨选择或发硬件软件组件基础发高效嵌入式系统解决案同详细说明嵌入式系统实系统发所特关键工艺技术 我所知realtime-uml设计软件: TNI公司ControlBuild Embedded , Rational :Rose RT iLogix :Rhapsody Artisansw :Artisan Studio Telelogic :Tau. TNI公司ControlBuild Embedded 全流程解决案涵盖整嵌入式控制软件设计全部程:用户需求、规格说明、设计、代码、仿真校验直验收 设计初阶段使用执行(形式化)、视化规格说明书用户进行沟通消除设计员用户间歧义 利用仿真设计进行校验测试并整设计程进行递进式校验设备安装前发现能存量设计错误问题缩短现场调试间 支持功能性设计 图形化IEC61131-3 语言符合EN50128 安全标准 重复使用设计 自设计文档 容易使用快速建模 各种软、硬件平台自C 代 ROSE进行析设计 RoseRTRational 收购objecttime推该工具主要基于叫做ROOM模式所执行<<active象都必须叫做capsule类其坏我受抬(ilogix道先ROOM太赞同) RoseRT界面觉比较复杂代码效率评价 仅提供系统态静态模型文档 Rhapsody目前外公司都用 Rhapsody进行嵌入系统建模进行软件设计 Rhapsody模型驱发环境UML2.0基础使同项目都能够通视化建模析、设计、实现测试自工作构建配置实嵌入式应用Rhapsody专嵌入式市场特殊需求设计优化包括实系统行语义实操作系统支持操作系统实应用支持遗产代码逆向工程、设计级调试、高效代码自(C、C++、Ada、Java)文档自等 错工具 UML图直接转换C++或C代码系统引入程序框架用支持顺序图、状态图运行、调式仿真带处显易见同嵌入式应用形阻力例新增功能原已程式软件包打补丁新框架原系统配合真消化吸收附加框架难度应该底于探索MFC结构于完全新项目Rhapsody错于扩功能打补丁项目三思呀知道Rose Real-Time 面表显何 Rhapsody diagrams, 设计员直接通画图,code generation 优质代码,意思. Rhapsody 真发员与设计员区别,要求设计员完全按照软件工程思想实施,项目疑维护N OS adapter , 便移植. 总说于发层应用项目说
❷ 软件工程与嵌入式哪一个对编程的要求要高一些
软件工程会要求超强的的编程能力,需要随时吸收当前最先进的编程技术。
嵌入式只要熟知一些底层的,有限的C语言和汇编就行了。
但是,软件工程吃力不讨好,由于代码语法是有限的,很多人都会写谈不上有个人创新,于是你有可能比不过其他专业的写手,或者你辛辛苦苦写的代码一下子被别人山寨掉。
个人认为嵌入式是个好方向,软件会被盗版,但嵌入式的东西就比较难山寨了。而且技术在进步,创新性强,
❸ 嵌入式需要好的编程技术么
至少会 C 吧?
除非你能保证你开发时所有的需要编程的地方,别人能给你干。
嵌入式开发应该是个综合的课程,需要好几门课程来支持他,你可以觉得这些课程没用,但是你没办法绕过对他们的知识要求。
❹ 嵌入式要求
1、嵌入式硬件的设计
(包括原理图和PCB) CPU、时钟电路、电源电路、复位电路、SDRAM、FLASH、LCD、URAT、USB host、USB Device SPI、 CAN、 IrDA、 Zigbee、IIC等等
2、Bootloader的移植
(上电后运行的第一段程序,类似PC的BIOS和MBR)
可以分开理解为Boot和loader Boot即boot cpu
loader为把Flash上的镜像文件loader进内存进行运行(Nor Flash运行速度慢,Nand Flash不支持XIP)
Bootloader两种模式,加载模式和下载模式 加载模式用于产品发布、下载模式用于产品调试阶段,主流的Bootloader有U-boot,支持多种体系结构。另外还有一个是韩国的vivi,不过目前已经不再进行更新维护,但可以作为学习使用
3、内核的裁剪与移植
(不同的CPU体系结构和不同的板级设备,所以内核需要裁剪与移植)
操作系统主要的功能包括:进程调度、进程通信、文件系统、内存管理、网络协议的实现
4、根文件系统的制作
内核启动后会挂在根文件系统,根文件系统下会有 root、bin、devices、home、mnt、usr、proc、等文件夹,每个文件夹均有不同的作用。
busybox:是常用的根文件系统制作工具
5、驱动程序的开发
驱动程序主要包括:字符设备驱动、块设备驱动和网络设备驱动,是整个开发流程中最难的一部分
6、应用程序开发
常用QT进行开发,这部分是和嵌入式关系最弱的一部分,把开发出来的程序通过TFTP或者NFS拷贝到开发板上进行运行
这是嵌入式产品开发的几个部分:
如果说要掌握哪些知识:1、模数电(看懂原理图,绘制原理图的基础)
2、高频(掌握当然更好、不掌握影响也不大) 3、计算机组成 微机原理(弄清计算机整个执行过程) 4、编译原理(一个源程序经过预处理、编译、汇编、链接成一个可执行程序) 5、linux内核(知道进程调度、进程间通信、文件时间操作、网络编程等等) 6、QT进行GUI的开发
我也才学没多久,不足之处,还请见谅
❺ 嵌入式C语言编程 对算法的要求高吗
我认为学习嵌入式对算法的精通是很有必要的,数据结构和算法的学习是帮助形成程序设计逻辑思维的很好训练方式,对于程序员的长期专业素养的提高一定有好处,所以建议即使已经在嵌入式行业中工作之后也应该多补充一些相关的知识。许多在学校没有学过数据结构的同学往往认为这部分非常枯燥、难学。而实际上如果你能明白研究计算机存储和数据组织方式的意义,就一定能够充分体会到数据结构的价值和魅力。一旦兴趣有了,一切就会迎刃而解,呵呵!
更多嵌入式学习方面的相关信息,你可以到华清远见的网站上了解一下。
❻ 嵌入式系统编程语言的衡量标准是什么
多任务支持就是UnixC中的多线程多进程并发,程序控制结构就是C语言和shell脚本还有必要的数据结构。异常事件处理就是UNIX c中的信号和fcntl加锁。
❼ 什么叫嵌入式软件开发可以说的详细些吗
一、考试说明
1、考试要求:
(1)掌握科学基础知识;
(2)掌握嵌入式系统的硬件、软件知识;
(3)掌握嵌入式系统分析的方法;
(4)掌握嵌入式系统设计与开发的方法及步骤;
(5)掌握嵌入式系统实施的方法
(6)掌握嵌入式系统运行维护知识;
(7)了解信息化基础知识、信息技术引用的基础知识;
(8)了解信息技术标准、安全,以及有关法律的基本知识;
(9)了解嵌入式技术发展趋势;
(10)正确阅读和理解计算机及嵌入式领域的英文资料。
2、通过本考试的合格人员能根据项目管理和工程技术的实际要求,按照系统总体设计规格进行软、硬件实际,编写系统开发规格说明书等相应的文档;组织和指导嵌入式系统靠法实施人员实施硬件电路、编写和调试程序,并对嵌入式系统硬件设备和程序进行优化和集成测试,开发出符合系统总体设计要求的高质量嵌入式系统;具有工程师的实际工作能力和业务水平。
二、考试范围
考试科目1:嵌入式系统基础知识
1.计算机科学基础
1.1数制及转换
o 二进制、八进制、十进制和十六进制等常用数制及其相互转换
1.2数据的表示
o 数的机内表示(原码、反码、补码、移码,定点和浮点,精度和溢出)
o 字符、汉字、声音、图像的编码方式
o 校验方法和校验码(奇偶验码、海明校验码、循环校验码)
1.3算术和逻辑运算
o 计算机中的二进制数运算方法
o 逻辑代数的基本运算和逻辑表达式的化简
1.4计算机系统结构和重要部件的基本工作原理
o CPU和存储器的组成、性能、基本工作原理
o 常用I/O设备、通信设备的性能,以及基本工作原理
o I/O接口的功能、类型和特点
o 虚拟存储存储基本工作原理,多级存储体系
1.5安全性、可靠性与系统性能评测基础知识
o 诊断与容错
o 系统可靠性分析评价
o 计算机系统性能评测方法
2.嵌入式系统硬件知识
2.1数字电路和逻辑电路基础
2.1.1组合电路和时序电路
2.1.2总线电路与电平转换电路
2.1.3可编程逻辑器件
2.2嵌入式微处理器基础
2.2.1嵌入式微处理器体系结构
o 冯.诺伊曼结构与哈佛结构
o CISC与RISC
o 流水线技术
o 信息存储的字节顺序(大端存储法和小端存储法)
2.2.2嵌入式系统处理器的结构和类型
o 常用8位处理器的体系结构和类型
o 常用16位处理器的体系结构特点
o 常用32位处理器的体系结构特点
o 常用DSP处理器的体系结构特点
o 多核处理器的体系结构特点
2.2.3异常
o 同步异常(陷阱、故障、终止)
o 异步异常(中断)
o 可屏蔽中断、不可屏蔽中断
o 中断优先级、中断嵌套
2.3 嵌入式系统的存储体系
2.3.1存储器系统
o 存储器系统的层次结构
o 高速缓存(Cache)
o 内存管理单元(MMU)
2.3.2 ROM的种类与选型
o 常见ROM的种类
o PROM、EPROM、E2PROM型ROM的典型特征和不同点
2.3.3 Flash Memory的种类与选型
o Flash Memory的种类
o NOR和NAND型Flash Memory的典型特征和不同点
2.3.4 RAM的种类与选型
o 常见RAM的种类
o SRAM、DRAM、DDRAM、NVRAM的典型特征和不同点
2.3.5 外存
o 常见外存的种类
o 磁盘、光盘、CF、SD等的典型特征和不同点
2.4 嵌入式系统I/O接口
2.4.1 定时器和计数器基本原理与结构
2.4.2 GPIO、PWM接口基本原理与结构
2.4.3 A/D、D/A接口基本原理与结构
2.4.4键盘、显示、触摸屏接口基本与结构
2.4.5嵌入式系统音频接口
2.5嵌入系统通信及网络接口
o PCI、USB、串口、红外、并口、SPI、IIC、PCMCIA的基本原理与结构
o 以太网、CAN、WLAN、蓝牙、1394的基本原理与结构
2.6嵌入式系统电源分类及电源原理
2.7电子电路设计
2.7.1电子电路设计基础知识
o 电子电路设计原理
o 电子电路设计方法及步骤
o 电子电路设计中的可靠知识
2.7.2 PCB设计基础知识
o PCB设计原理
o PCB设计方法及步骤
o 多层PCB设计的注意事项及布线原则
o PCB设计中的可靠性知识
2.7.3电子电路测试基础知识
o 电子电路测试原理与方法
o 硬件抗干扰测试
3. 嵌入式系统软件知识
3.1嵌入式软件基础知识
3.1.1嵌入式软件的分类(系统软件、支撑软件、应用软件)
3.1.2无操作系统支持的嵌入式软件体系结构(轮询、中断、前后台)
3.1.3有操作系统支持的嵌入式软件体系结构
3.1.4板极支持包基础知识(系统初始化、设备驱动程序)
3.1.5嵌入式中间件(GUI、数据库)
3.2 嵌入式操作系统基础知识
3.2.1嵌入式操作系统体系结构
o 单体结构、分层结构和微内核结构
3.2.2任务管理
o 多道程序技术
o 进程、线程、任务的概念
o 任务的实现(任务的层次结构、任务控制块、任务的状态及状态转换、任务队列)
o 任务调度(调度算法的性能指标、可抢占调度、不可抢占调度、先来先服务、短作业优先算法、时间片轮转算法、优先级算法)
o 实时系统及任务调度(RMS、EDF算法)
o 任务间通信(共享内存、消息、管道、信号)
o 同步与互斥(竞争条件、临界区、互斥、信号量、死锁)
3.2.3存储管理
o Flat存储管理方式
o 分区存储管理(固定分区、可变分区)
o 地址重定位(逻辑地址、物理地址、地址映射)
o 页式存储管理
o 虚拟存储技术(程序局部性原理、虚拟页式存储管理、页面置换算法、工作集模型)
3.2.4设备管理
o 设备无关性、I/O地址、I/O控制、中断处理、缓冲技术、假脱机技术)
3.2.5文件系统基础知识
o 文件和目录
o 文件的结构和组织
o 存取方法、存取控制
o 常见嵌入式文件系统(FAT、JFFS、YAFFS)
3.2.6操作系统移植基础知识
3.3 嵌入式系统程序设计
3.3.1嵌入式软件开发基础知识
3.3.2嵌入式程序设计语言
o 汇编、编译、解释系统的基础知识和基本工作原理
o 汇编语言
o 基于过程的语言(过程/函数、参数传递、全局变量、递归、动态内存分配、数据类型)
o 面向对象的语言(对象、数据抽象、继承、多态、自动内存管理)
o 各类程序设计语言的主要特点和适用情况
3.3.3嵌入式软件开发环境
o 宿主机、目标机
o 编辑器、编译器、链接器、调试器、模拟器
o 常用嵌入式开发工具(编程器、硬件仿真器、逻辑分析仪、示波器)
o 集成开发环境
o 开发辅助工具
3.3.4嵌入式软件开发
o 软件设计(模块结构设计、数据结构设计、内存布局、面向对象的分析与设计)
o 嵌入式引导程序的设计、设备驱动程序设计、内核设计、网络程序设计、应用软件设计)
o 编码(编程规范、代码审查)
o 测试(测试环境、测试用例、测试方法、测试工具)
o 下载和运行
3.3.5嵌入式应用软件移植
4.嵌入式系统的开发与维护知识
4.1系统开发过程及其项目管理
o 系统开发生命周期各阶段的目标和任务的划分方法
o 系统开发项目挂你基础知识及其常用管理工具使用方法
o 主要的系统开发方法
o 系统开发工具与环境知识
4.2 系统分析基础知识
o 系统分析的目的和任务
o 系统分析方法
o 系统规格说明书的编写方法
4.3 系统设计知识
o 传统系统设计方法
o 软硬件协同设计方法
4.4 系统实施知识
o 系统架构设计
o 系统详细设计
o 系统调试技术
o 系统测试
4.5 系统维护知识
o 系统运行管理知识
o 系统维护知识
o 系统评价知识
5.安全性知识
o 安全性基本概念
o 加密与解密机制
6.标准化知识
o 标准化的概念
o 国际标准、国家标准、行业标准、企业标准基本知识
o 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识
o 标准化机构
o 嵌入式系统相关标准
7.信息化基础知识
o 信息化和信息系统基本概念
o 有关的法律、法规
8.嵌入式技术发展趋势
9.计算机专业英语
o 正确阅读和理解相关领域的英文资料
考试科目2:嵌入式系统设计应用技术
1.嵌入式系统开发过程
1.1系统需求分析方法与步骤
1.2系统设计
o 系统硬件配置
o 系统功能组成分配
o 软硬件功能的分配
o 可行性验证及设计审查
o 系统规格
o 周期,成本及工作量估计
o 开发计划
1.3软硬件协同设计
1.4硬件设计
1.5软件设计
o 软件结构
o 设计评审
o 软件详细设计
1.6系统测试
o 测试环境
o 测试计划(内容、方法、标准、过程、检验)
o 硬件测试
o 软件测试(单元测试、集成测试)
o 软硬件联合测试
o 实施测试
1.7系统评估
1.8 软件维护
2.嵌入式系统硬件设计
2.1嵌入式系统硬件基本结构
2.1.1嵌入式微处理结构与应用
2.1.2 异常及中断处理技术
2.1.3 DMA技术
2.1.4 多处理系统
o 多处理器系统特点
o 多处理器系统构建技术
2.1.5 总线架构
o 应用系统中的总线配置
2.1.6 内存种类及架构
o 存储器系统接口设计
2.1.7数字电路和逻辑电路
o 专用集成电路
o 可编程逻辑控制器件
2.2输入/输出接口设计
2.2.1 输入/输出接口
o 接口信号电平转换
o 接口驱动电路设计
2.2.2输入/输出接口应用技术
o 外围设备
o 串口通信
o 并口通信
o 模拟接口
o 通信接口设备
o 通信标准和协议
o 数据传输方式
2.3外围设备接口应用技术
2.3.1 外围存储设备
o 存储卡,记忆棒,IC卡,MMC卡,SD卡
o DVD 、CD-R 、CD-RW
2.3.2外围输入/输出设备
o 键盘,鼠标,触摸屏
o 液晶板、LED、7段数码管、蜂鸣器
2.3.3电源设计技术
2.4可靠性与安全性设计技术
2.4.1 错误检测与隔离技术
2.4.2 冗余设计
2.4.3 系统恢复设计
2.4.4 诊断技术
2.4.5常用安全标准
2.4.6 抗干扰设计
2.4.7电磁兼容设计
2.4.8系统加密
3.嵌入式系统软件设计
3.1嵌入式系统软件结构设计
3.2嵌入式操作系统应用技术
3.2.1 时间管理
o 系统时间
o 时钟中断
3.2.2内存管理
o 静态内存管理
o 动态内存管理
3.2.3任务管理和任务间的通信
o 任务间的通信机制
o 信号量
o 邮箱
o 消息队列
3.2.4异常处理
o 异常处理方法
o 中断优先级处理方法
o 系统调用
3.2.5嵌入式文件系统应用技术
3.2.6嵌入式系统图形用户接口(GUI)应用技术
3.2.7嵌入式系统数据库应用技术
3.3嵌入式软件设计技术
3.3.1汇编语言设计
o 数据类型
o 汇编语言程序结构
o 汇编语言程序设计及优化
o 子程序调用
3.3.2嵌入式C语言设计
o ANSI-C的数据类型
o C程序结构
o C语言程序设计及优化
o 程序的编译与链接
3.3.3面向对象程序设计与开发
o 面向对象的分析与设计方法UML
o 面向对象的编程语言
o 使用C++进行嵌入式系统开发
o 使用Java进行嵌入式系统开发
3.4 系统级软件设计技术
o 嵌入式系统固件与系统初始化设计
o 设备驱动程序设计
o 硬件抽象层、板级支持包设计
o 嵌入式软件的移植技术
4.嵌入式系统开发技术
4.1系统开发环境
4.1.1开发工具
o 文本编辑器
o 汇编、编译和连接程序
o ICE和ICE监控器
o 配置管理工具
o 逆工程工具
4.1.2平台
o 操作系统
o 分布式开发环境
4.1.3开发环境创建方法及评估
o 开发工作分析
o 开发环境的建立
o 维护、管理、使用开发环境的方法
o 开发环境的评测
4.2实时系统的分析技术
4.2.1实时系统的分析技术
o 结构化分析方法
o 面向对象分析方法
4.2.2实时系统的设计技术
o 结构化分析方法
o 面向对象分析方法
4.3硬件设计环境
4.3.1硬件描述语言
o 硬件开发设计过程
o 硬件描述语言的种类与特点
4.3.2仿真技术
o 逻辑仿真方法
o 逻辑仿真工具
4.3.3大规模集成电路系统的开发方法
o ASIC开发方法
o FPGA设计方法
o IP(intellectual property)
4.4协同设计
o 软硬件任务工和切调
o 设计评审
4.5嵌入式系统低功耗设计技术
o 低功耗系统工作机制
o 低功耗系统模型结构
o 低功耗的硬件设计技术
o 低功耗的软件设计技术
4.6分布式嵌入系统设计
o 分布式系统设计原理
o 分布式系统的通信技术
o 分布式系统设计应用
5.嵌入式系统应用
5.1嵌入式系统在控制领域中的应用
5.2嵌入式系统在手持设备中的应用
5.3嵌入式系统在模式识别中的应用
三、题型举例
1、选择题
若嵌入式系统中采用I/O地址统一编址模式,访问内存单元和I/O设备是通过 (1) 来区分的。
(1) A.数据总线上输出的数据
B.不同的地址代码
C.不同的地址总路线
D.不同的指令
2、问答题
在某个嵌入式操作系统中,任务的状态转换图(不完整)如下,请阅读该图以及下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
〔说明〕
任务总共有五个状态:休眠状态、就绪状态、运行状态、中断服务状态和等待状态,在任何时候,一个任务只会处于其中的某一个状态。
〔问题1〕(3分)
在单个CPU的系统中,处于运行状态的任务最多有多少个?
〔问题2〕(3分)
对于运行状态、就绪状态和等待状态这间的相互转换,图中并没有画出来,请补充。用文字处理的形式来进行描述,格式形如"运行状态→中断服务状态"。
〔问题3〕6分)
从运行状态可以直接变为等待状态吗?如果不能为什么?如果能什么时候会发生这种转换?举例说明。
❽ 嵌入式C语言和标准C的区别
语法上没什么区别,就是普通的c编程是在OS之上,有很多的标准库函数可以调用,分配的内存就是PC机的内存,处理器就是PC的CPU。 而嵌入式C编程的话会涉及到操作硬件,所以底层没有库函数调用,需要自己编写操作硬件的函数,另外编译的时候是用交叉编译器,内存是芯片上的ram, 处理器就是芯片带的处理器,例如ARM或者MIPS等等,而不是PC的x86 CPU, 还有就是在写程序的时候更注重程序的优化和效率,因为嵌入式硬件资源相对PC有限,实时性较强等等。
❾ [嵌入式技术] 如何规范写嵌入式系统开发文档
一个系统设计完成以后,它不应该仅仅是一些源代码,还应该包括各种各样的开发文档。这对以后自己对系统的维护和升级都有很好的参考作用。一个系统开发完成,它究竟应该包含那些文档,这些文档一般是怎么完成的,应该包含哪些内容?这就是系统开发的规范化问题。系统开发的规范化不仅有利于自己,也有利于公司,更有利于新手。规范化的设计让工程师工作更高效,这已经是不用争论的事实。现在在大型软件工程开发方面,这已经做得相当好。但在单片机和嵌入式系统的开发方面,规范化的工作却有待我们共同探讨。在国内,一些公司的研发人员也有一种误导——快写代码,快让我看见功能,不要你做其他的,完成功能就好。这些都把我们的设计导入一种误区:大部分时间都在写代码,改代码。 嵌入式实时系统复杂度的提高,设计工程师在定义和分析系统初始要求时必须认真考虑软硬件的协同关系。通常设计工程师还必须权衡系统的灵活性、速度、成本、计划和可用工具之间的关系。本文打算描述嵌入式系统和实时系统的关键特性,并探讨在选择或开发硬件和软件组件的基础上开发高效嵌入式系统的解决方案,同时详细说明嵌入式系统和实时系统开发所特有的关键工艺技术。 我所知的realtime-uml的设计软件: TNI公司的ControlBuild Embedded , Rational :Rose RT iLogix :Rhapsody Artisansw :Artisan Studio Telelogic :Tau. TNI公司的ControlBuild Embedded 全流程解决方案,涵盖了整个嵌入式控制软件设计的全部过程:从用户需求、规格说明、设计、代码生成、仿真校验直到验收。 在设计的最初阶段使用可执行的(形式化的)、可视化的规格说明书和用户进行沟通,消除设计人员和用户之间的歧义。 利用仿真对设计进行校验测试,并在整个设计过程中进行递进式的校验,在设备安装之前发现可能存在的大量设计错误和问题,大大缩短现场调试的时间 支持功能性设计, 图形化IEC61131-3 语言,符合EN50128 安全标准 重复使用设计 自动生成设计文档 容易使用,快速建模 为各种软、硬件平台自动生成C 代 ROSE进行分析设计 RoseRT是Rational 在收购objecttime以后的推出的,该工具主要是基于一个叫做ROOM的模式,所有可执行<<active的对象都必须是一个叫做capsule的子类。其好坏我也感受不抬出来。(ilogix的道先生对ROOM不太赞同) RoseRT的界面感觉比较复杂,代码生成也可以,但效率无法评价。 仅提供了系统的动态和静态模型文档。 Rhapsody目前国外好多大公司都是用 Rhapsody进行嵌入系统的建模,进行软件设计的。 Rhapsody是一个模型驱动的开发环境,它以UML2.0为基础,使大小不同的项目都能够通过可视化建模的方法分析、设计、实现和测试自己的工作,构建和配置实时嵌入式应用。Rhapsody专为嵌入式市场的特殊需求设计和优化,包括实时系统的行为语义,实时操作系统的支持,无操作系统的实时应用支持,遗产代码的逆向工程、设计级的调试、高效的代码自动生成(C、C++、Ada、Java)和文档自动生成等。 很不错的工具,可以把 UML图直接转换成C++或C代码。但它也会在系统中引入它的一个程序框架,用以支持顺序图、状态图的运行、调式和仿真。它带来的好处显而易见,但同时,它对很多嵌入式应用又形成阻力。例如,如果你新增功能是在原来的已有的过程式软件包上打个补丁,新的框架和原系统的怎么配合?那么你得真正消化和吸收这个附加的框架,这个难度应该不底于探索MFC结构。对于一个完全新的项目,Rhapsody很不错。对于扩功能打补丁的项目,三思呀。不知道Rose Real-Time 在这方面的表显如何? Rhapsody 有很多 diagrams, 设计人员直接通过画图,code generation 就生成优质代码,很有意思. Rhapsody 真正把开发人员与设计人员区别开来,这就要求设计人员完全按照软件工程思想来实施,这对项目无疑是个很好的维护可以有N多的 OS adapter , 方便移植. 总的来说对于开发上层应用的项目来说
❿ 嵌入式编程需要懂哪些
嵌入式编程需要懂C语言,Linux,还有ARM的知识。
关于如何学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
专科生学嵌入式到找到工作的前前后后--学习的榜样
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在网络知道看到一篇让我很鼓舞的文章《如何学习嵌入式》,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视频,是在嵌入式学习网推出的一份视频《嵌入式视频教程--零基础手把手教你学嵌入式》,里面的教程还不错,很完整,可以让我从基础的开始学起。视频不便宜啊,但是我也忍了,毕竟买几本书都要几百了,何况他们还有半年的技术咨询和服务,算值了。
======这里我就不给出他们的网址,如果你也想要嵌入式视频的话,那就自己去网络搜索:零基础手把手教你学嵌入式。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,同时我不懂的就问,这里真的很感谢他们的技术客服对我的任何问题都是耐心的解答,每天都我几乎都有好几个问题问他们,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
最后祝愿所有想学嵌入式的朋友更早的入门!
-----------------------------------------------------------
希望我的回答能帮到你吧