精华内容
下载资源
问答
  • 嵌入式开发项目中,首先需要做需求分析,然后根据需求分析进行综合考虑,这里给出几个特别要注意的问题。 1.MCU的选择 选择 MCU 时要考虑 MCU 所能够完成的功能、MCU 的价格、功耗、供电电压、I/O 口电平、管脚...
  • 项目生命周期五大阶段 ...产品设计结束后要写下详细的产品规格(技术层次、人力资源、开发费用、产品成本) 尽量避免中途更改产品规格; 凡事以最终用户需求或体验为准。 管理项目:管理行为 项目经理必须清楚了解...

    项目生命周期五大阶段

    1、项目启动阶段

    (1)项目可行性分析

    一个成功的产品,应该从以下3个方面来观察评估:

    • 设计产品:商业行为

      • 产品设计前,要做好市场调查和评估,要考虑产品的时效性、市场需求和技术可行性;

      • 产品设计结束后要写下详细的产品规格(技术层次、人力资源、开发费用、产品成本)

      • 尽量避免中途更改产品规格;

      • 凡事以最终用户需求或体验为准。

    • 管理项目:管理行为

      • 项目经理必须清楚了解其任务事在规定的期限内完成质量可接受的产品开发,在此前提下必须衡量人力及其它相关资源,只做该做的事,能够因时制宜。
    • 开发系统:技术行为

      • 不要追求完美,只需达到在规定的时限,有限的资源条件下,设计开发出“足够好”的满足需求的产品就好。

      • 设计工作一定要确实执行,绝对要文件化。不能为了敢进度而跳过设计直接进行程序编写。

    需求管理者确定 ——> 需求分析&Review ——> 项目规模估算 ——> 项目风险分析 ——> 初步项目执行计划&Review

    (2)项目授权书

    明确说明项目目标与管理方向

    明确对授权PM

    任何与项目有关的信息

    (3)理清必要的约束

    确认产品规格(成本/性能/质量/。。。需求)

    确认产品限制

    初步确认将参与项目的公司与单位

    确认开发模式(S/W Development Life Cycle)

    Waterfall Model

    Prototype Model(初期需求不明确)

    Spiral Model(Waterfall + Prototype的多次迭代)

    。。。


    2、项目规划阶段

    初期规划:是否该接这个项目?

    • 没规划,一定挂!在确定接项目前,一定要做过极为仔细的分析。

    • 完成不可能的任务!因为客户交付的项目肯定不会太简单。

    (1)Scope/Time/Cost/Quality Plan

    (2)Resource/Communication Plan

    (3)Risk Plan

    (4)Configuration Plan

    (1)项目范围(Scope)管理

    妥协的艺术:进度 VS 规格

    质能守衡原则,如果客户一再压缩进度,那只能降低规格;若客户一再变更规格,那只能delay进度。

    当项目启动后,首先就是要花时间做好项目的范围管理(哪些该做,哪些不该做),唯有定义出正确的范围,之后做的进度、成本和人力计划才是有意义的。

    项目管理工具——Work Breakdown Structure,WBS和变更管理

    • WBS

      • 工作分解,其它项目计划最重要的依据

      • 分解的标准:

        • 按“功能组成”分解

        • 按“项目生命周期”分解

        • 按照“系统架构”分解

      • WBS的最小分解单元(Work Package)要非常具体,至少拆分到一周或40HRs的工作量。

      • 表述方式(树状图+列表)

      • image-20201110210209743
    • 变更管理

      • 所有的变更一定要经过CCB(Change Control Board,变更管理委员会,即与此变更有关的关系人参与决策的会谈)的同意,并造出新的计划书,严禁接受客户私下变更规格的请托。

      • image-20201110211121028

    (2)项目进度(Time/Schedule)管理

    • 时间与其他资源特性不同,它具有单向性、不可重复性、不可替代性。

    • 规划“进度计划”:

      • 从WBS中取得所有的最小活动单元(树状图中的叶节点leaf)

      • 确认各任务间的关系(持续时间、次序关系)

        • FS(Finish to Start):任务A结束后,任务B才可以开始;

        • FF(Finish to Finish):任务A结束后,任务B才可以结束;

        • SF(Start to Finish):任务A结束后,任务B才可以结束;

        • SS(Start to Start):任务A开始后,任务B才可以开始;

      • 进度管理图表(Gantt图+网络图)

        • 甘特图描述各任务的起讫时间,也可用来执行“进度追踪”;

        • 网络图描述各任务间的先后关系(节点代表任务,箭头指示任务次序,箭头边的数字代表所需时间),用来找到关键路径CPM(图中用时最长的路径),唯有缩短关键路径上任务的时间,才能缩短整个项目的周期。

    • 管理预留

      • 为整个项目预留时间(一般是整个项目周期的10-15%),不到不得已,不要拿出来用。

      • 根据帕金森定律,不论你给员工多少时间,他总倾向于用完分配给他的时间。

    • 需知道的原则

      • 进度计划是用来遵守而不是修改的。当延迟发生时,PM和主管应该积极设法解决问题并设法赶上进度,而不是修改进度。

      • 规划进度表时,应该由粗到细,协调并整合各单位的意见,切记闭门造车。

      • 进度与成本呈反比。

      • WBS分解的好坏直接影响项目进度计划

      • 执行时期必须不断检查项目计划与实际进度是否存在偏差,并及时追踪和处理。

    (3)项目成本(Cost)管理

    • 软件系统的项目成本预估永远不会很精确,只能依靠经验或业界共识来提高精度。

    • 项目是商业行为,开发出一件不赚钱的产品不如不开发。一切要为成本让步。

    • 成本的几个主要来源:

      • 管理成本

      • 硬件/结构设计成本

      • 生产&材料成本

      • 软件开发成本(代码行、函数点、人月。。。)

      • COCOMO模型估算成本

      • image-20201110225129815
    • 成本估算误差来源:

      • 基础数据不足,项目仍存在许多不定因素

      • 项目成本对需求敏感

      • 经验不足或低劣的成本估算技术

      • 签约前后不连贯

      只有等WBS做出来后,且工作被分割的越细,估算才能最接近实际。但往往实际工作做不可能等你做完WBS才报价。推荐《人月神话:软件项目管理之道》。在嵌入式软件项目中人力成本是总成本最主要的部分;

    • 挣值管理

      主要用于项目成本和进度的监控,它将目前为止所完成的工作与项目计划里的估计值比较,以提供关于项目距离完成还有多远的估量,PM可以得到距离项目完成还需花费多少资源。

    (4)项目质量(Quality)管理

    • 基本思想

      • 质量是规划出来的,而不是检查出来的,预防重于治疗,要在规划阶段就做好“质量计划”,并明文公布;可以先粗线条定下baseline,再制定细则。

      • 项目质量是所有开发人员工作质量之

      • 质量管理并非一次性活动,而是贯穿整项目生命周期;

      • 质量等级是相对的,以客户需求和价格而定;

      • 质量管理是一种精神,并非通过ISO9000或CMM就能做出有质量的产品。

      • 质量管理系统:ISO9000或CMMI

      • CMM的5级管理体系
    • QA(Quality Assurance)

      专注在流程的正确性上,是一种管理职能。QA的主要目的就是确保产品在既定进度与预算下,能达成预期质量水平与可靠度目标。QA的工具就是稽核(Audit),从计划拟定、模块设计、Code Review、测试计划、生产流程、备料计划等各阶段都要进行稽核。规划阶段的工作产品是制定质量规划书,明确项目采用的质量标准,确定如何满足该标准的要求。特别是:

      • 完成了某个里程碑

      • 提出了变更要求

      • 项目即将进入下阶段时

    • QC(Quality Control)

      专注在流程bug的查找和追踪上,是一种检查职能。QC必须确定项目结果与质量标准是否相符,同时查找不符的原因(bug)和跟踪是否妥善解决(每个bug的处理流程都必须记录下来)。规划阶段的工作产品是制定测试计划

      质量规划流程图

    (5)项目人力资源(Human Resource)管理

    • 人员的组织管理是否得当,是影响软件项目的决定性因素。

    • MS有一个明确的规则——项目组的人员不要超过10人。

    • 组织结构:

      • 职能型组织(组织与项目利益可能冲突)

      • 项目型组织(资源重复,无法贯彻公司策略)

      • 矩阵型组织(职能或部门经理与项目经理的冲突)

      • 强矩阵组织

      • 矩阵式组织图
    • 团队管理

      • 创建由实际存在感的项目团队

      • 建立奖励机制

      • 确立良好的人际关系

      • 设定工作授权系统

      • 激励理论:因才适所、投其所好

    (6)项目沟通(Communication)管理

    • 管理中70%的错误是因为不善于沟通造成的,PM 80%以上的时间是用在沟通上。

    • 沟通计划:

      • 沟通需求:哪些人、哪些时候、需要哪些需求?

      • 沟通内容:沟通的格式、内容、详细程度等

      • 沟通方法:明确沟通方式与沟通管道(会议、bug管理软件、工作报告)

      • 沟通职责:谁发送消息,谁接收消息

      • 沟通安排:在项目计划中必须包含重要沟通事件的Schedule。(例如review meeting)

    • 沟通渠道计算:若项目中有N个人,那么需要建立N(N-1)/2条沟通渠道,相当于沟通成本就很高。

    (7)项目风险(Risk)管理

    • Risk三要素:

      • 是某个事件

      • 有发生的概率

      • 会对项目造成一定的影响

    • 风险管理最容易被忽略也是最难以管理的

    • 风险管理流程(循环往复):

      • 风险识别:列出风险列表

        • 项目缺乏可见度

        • 新技术的吸引力

        • 技术兼容性风险

        • 性能风险:增加执行设计阶段的力度、制作原型(Prototype)等

        • 仓促上线风险

        • 可用性问题

        • 缺料、零件涨价

        • 合约风险:同法务详细检查合约内容

        • 需求变更风险:提前以书面形式约定好变更处理流程

        • 沟通不良风险:项目沟通计划制定与公布

        • 缺乏高层支持风险

        • 进度风险:若Schedule无法调整,则尽量多获取资源与预算,或者分阶段交付产品。

        • 质量风险:慎重制定项目质量策略,成立质控小组。

        • 团队成员能力风险:提前培训或变更成员。

        • 团队合作风险:目标明确,绩效制度公平。

        • 人员流动风险:核心工作分派给多人执行。

        • 协助厂商风险:合作前即制定审核稽核与验收流程。

      • 风险评估

        • 定性分析

          • 列出概率/严重性矩阵

          • 对项目的薄弱环节有一定的了解

        • 定量分析:基于定性分析成果的数学处理与表达

        • 列出风险排行榜(概率 X 严重性)

      • 风险规划(处理)

        • 回避风险:主动放弃或拒绝使用导致风险的方案,寻找替代方案

        • 转移风险:将风险转移给外包公司

        • 损失控制:减缓风险发生时的危害程度

        • 承担风险:对发生概率低或影响小的风险,可选择先不处理

      • 风险控制

    (8)项目采购/合约管理

    • 软件外包:实际比自身开发的净投资多15%至20%

    • 外包项目的管理比自己开发更复杂:

      • 技术难度

      • 沟通复杂度

      • 外包成本

    • 外包项目注意事项:

      • 沟通问题

      • 做好详细计划

      • 避免延误

      • 明确验收标准(软件规格与API。。。)

    (9)项目配置(Configuration)管理

    • 贯彻开发的全过程,目的是用于建立和维护产品的完整性和可追溯性

    • 对应软件开发项目中成熟的版本控制流程

    • 软件配置管理——简单说就是项目资产管理,对开发过程中的产品进行标识、追踪、控制的过程,包括:

      • 项目的全貌,包含产品规格与设计规格。

      • 项目原始的计划,以及项目运行期间所有曾做过的变更。

      • 设计阶段的任何重大转折点、与项目运行期间技术上的重大突破。

      • 软件开发期间曾遇到哪些问题,解决的方式是什么?对应的程序代码是什么?

      • 重要软件版本或项目里程碑所代表的意义,以及该事件点项目状况的快照

      • 硬件设计与生产阶段的问题履历即解决方式。


    3、项目执行/控制阶段

    • 软件工程与项目管理如何配合执行?

    • image-20201114130434239
    image-20201114130549788

    软件工程包含三个循环过程:

    • 开发过程定义:包含软件需求、软件开发过程、软件配置管理SCM

    • 软件开发:包含软件设计、软件构建、测试、维护和更新

    • 软件质量保证:软件质量

    项目管理过程包含三个循环过程:

    • 项目规划

    • 项目实施

    • 项目监控

    (1)产品规格设计

    产品规格写完,最后必须再让客户确认一次并签字!以后所有设计工作必须以此为模板。一旦客户要将新的需求变成“规格”,必须改动已通过审查的正式文件,而这要经过质量管理体系的同意。

    一般来说产品规格包含以下方面:

    • 硬件规格简介

    • 产品设计理念、限制与应用范围

    • 使用者功能说明书

    • 操作流程图

    • 使用者界面与美工图案

    • 性能规定

    • 特殊注意事项

    (2)硬件设计

    硬件设计阶段的工作如下,除了外观与结构设计外,固件工程师应尽量参与:

    • CPU选择

    • 主要芯片选择

    • 电路设计

    • Layout

    • 零件、物料管理

    • 产品外形设计

    • 结构设计

    • 开模前的模型制作

    在此阶段输出的文件有:

    • 硬件设计规格书

    • BOM表

    • 3D外观图

    • 结构图

    • 原理图

    • Layout图

    (3)系统设计

    根据项目大小或硬件环境,选择合适的设计方法。如果是CPU主频仅有几十M,且内存又很小,建议选择结构化方法设计,并选择C语言进行开发。如果项目较大,CPU主频几百M,且存储资源丰富,则选择面向对象方法,语言上可选择C++或Java语言。

    (4)测试计划设计

    软件测试也有标准,IEEE 829详细描述了测试计划书的规定与注意事项,但实际情况是,要按照项目本身特点,传承该标准的思想和精神。在测试前,需要着重了解较复杂的功能、新功能、客户特殊的要求或规格书中描述较模糊的地带,然后才设计测试个案testing case和计划。

    (5)风险评估

    最普遍的风险有以下几个

    • 进度拖延

    • 需求膨胀

    • 人员流失

    • 规格崩溃

    • 绩效低落

    • 技术落差

    • 文化差异

    • 软硬件整合

    • 生产制造问题

    风险识别流程

    风险识别流程图

    面对风险的4种处理方法

    • 回避:不去碰触会产生风险的部分

    • 抑制:准备足够的时间与金钱,在风险成型时砸下去

    • 舒缓:在风险成型前,就先采取某些措施

    • 逃避:什么都不做,祈求老天保佑

    (6)动手编码前先写设计文件

    从项目开始就应该准备一个服务器存放并管理项目的所有文件,并让所有项目成员都可以很容易取得所需的文件或记录。

    应该被记录的文件包含:

    • 产品规格

    • schedule

    • 硬件设计相关文件(CPU PIN脚配置图、原理图、Layout图等)

    • 技术文件-芯片的datasheet、3rd party软件函式库的API等

    • 系统架构设计规格书(包含各模块API)

    • 测试计划书

    • 测试报告及bug sheets

    • 质量文件

    • 重要会议记录

    • 重要邮件备份

    • 其它需要记录的文档

    (7)设计审查(design review)

    设计审查的原则:

    • 设计审查必须师渐进式的。且要贯穿设计的全过程

    • 设计审查时要邀请该设计的客户参加

    • 越是大范围的设计,越要召集所有项目人员参加。

    (8)实作阶段

    当所有设计文件都通过审查后,就可以进入实作阶段了。其包含以下内容:

    • 程序开发与调试

    • 硬件(电子、结构)开发

    • 软件与硬件测试

    • 质量相同执行

    • 工厂试产

    项目的每一个阶段都应该根据PDCA(Plan、Do、Chick、Act)循环。当在程序编写时发现设计有问题,切不可自行修改,必须暂时局部停下实作的脚步,找出对策,确认影响范围,通过相关单位的设计审查后,才可以再继续实作。也即就是“设计变更”流程

    嵌入式相同开发的成果最终要产品化,所以不可避免要和工厂打交道。

    • 软件工程师必须交付给工厂的项目有:

      • 用来烧录的Binary File

      • 生产线专用自动测试程序与说明书

      • 环境测试专用的测试程序

    • 硬件、电子工程师必须交付给工厂的项目为:

      • 电子电路

      • 电气工程规格

      • 特殊规格测试说明(工厂之前没生产过的功能)

    • 结构工程师必须交付给工厂的项目为:

      • 组合图(把所有零件一一展开)

      • 特殊部品外形图

      • 特殊加工组合图

    4、项目结项阶段

    (1)对外合约结项

    (2)对内项目结项

    项目资料归档

    技术数据归档

    记录经验,累计企业的项目资产

    close meeting,人员解散

    在项目执行期间,制定流程,并使用自动化工具,将项目开发的轨迹(包含程序、文件、bug管理、issue管理、变更管理等)记录下来,并定期备份。

    明确规定执行项目结项流程的起讫时间,最好不超过一周,并于项目成员的部门主管以及现任的项目经理沟通与协调,请这些同事们在某段时间内帮这个项目最后的忙。

    展开全文
  • 比赛项目书,关于物联网,嵌入式,Java编程开发,本科硕
  • 王浩主编的《嵌入式Qt开发项目教程》源码,包含四个项目的源文件:电子相册、GPS定位程序、GPRS短信程序、温度实时数据曲线图程序。
  • 嵌入式开发实例

    2018-04-20 11:26:03
    嵌入式linux应用程序开发标准教程(第二版) 课堂实例
  • 嵌入式项目开发经验

    千次阅读 2018-04-09 13:56:06
    #define BOARD_ADDR (uint16_t)(('0')|('1')<<8)宏定义只能定义常量不可定义变量:#define BOARD_ADDR (BOARD_ID/10+'0')|(BOARD_ID%10+'0')<<8)BOARD_ID为变量,所以不成功Receive_...
    1. #define BOARD_ADDR (uint16_t)(('0')|('1')<<8)
      1. 宏定义只能定义常量不可定义变量:
        1. #define BOARD_ADDR (BOARD_ID/10+'0')|(BOARD_ID%10+'0')<<8)
          1. BOARD_ID为变量,所以不成功
    2. Receive_Flag = 1;
      1. 定义标志位,if()语句常用标志位为1来判断是否进入执行内部函数。
      2. 中断定时器中,采用标志位来判断执行时间到了吗?到了就进入if()执行内部函数,节约单片机资源。
    3. 单片机调试要领:
      1. 设置执行断点
        1. 先全速运行到要调试部分再单步运行查看运行过程。
        2. 判断是否运行至设置断点的语句处,判断执行中间过程可能出现的原因。
      2. 监听数组,变量等的数据变化
        1. 进入watch1,出现如图所示内容,监听内部数据变化

    1. 中断定时器
      1. #include "stm32f10x_it.h" 中设置函数,使用单片机中断定时器资源
        1. 在给定STM32函数中嵌套需要函数是使用内部资源最方便合理的做法。
        2. 采用了中断标志

    1. 启用中断定时器必须启用如图所示时钟函数。

    1. 结构体:简化编程
      1. 图片中为连续结构体
        1. __attribute__((__packed__)) //配置连续存贮空间

    1. 结构体与指针的结合能极大的简化编程
      1. REV_DAT *TP;定义结构体指针,并启用函数,方便后续调用。

    1. 按键:按键扫描,把结果存入变量中,采用二进制位来判断是否按下。


    展开全文
  • 本文主要想为研发嵌入式项目的企业或个人提供上云指导,通过本文中的示例项目 “智能显示器”,为开发者提供包括项目管理,代码托管,编译构建,部署等操作指导,覆盖软件开发全生命周期。 1.2项目详情 项目简介:...

    概述

    1.1 文章目的

    本文主要想为研发嵌入式项目的企业或个人提供上云指导,通过本文中的示例项目 “智能显示器”,为开发者提供包括项目管理,代码托管,编译构建,部署等操作指导,覆盖软件开发全生命周期。

    1.2 项目详情

    项目简介:智能显示器是一个基于华为物联网操作系统LiteOS的嵌入式产品,单板使用的是STM32f429评估板,基于Cortex M4核芯片。本项目主要完成了LCD显示的应用开发,后续可以增加温控等开发。一般来说,基于LiteOS进行的业务开发主要有两种情况:第一种,需要修改LiteOS来适配芯片硬件参数,将LiteOS在一款新的芯片上运行起来。 第二种, 使用已适配好硬件芯片的LiteOS代码,能够直接在单板上运行,后续主要开发新的模块业务,以及增加新的单板外设。目前,已开源的LiteOS内核源码已适配好STM32F4芯片,因此本文不需要处理硬件参数问题。

    项目周期:3周(敏捷迭代开发)

    构建环境:centos gnuarm-7-2018-q2-update

    部署环境:STM32F4291-DISCO单板

               开发板供电(使用Mini USB连接线) 

    部署方式:STM32 ST-LINK Utility v3.8.0.exe

    华为云服务:软件开发服务 DevCloud  

    1.3 前提条件

    注册华为云账号:华为云官网注册华为云账号,此账号适用于所有华为云产品。

    安装单板烧写工具:下载并安装STM32 ST-LINK Utility v3.8.0.exe(自带驱动安装)。

    项目管理

    2.1 创建项目

    新建项目的开发流程包含两种类型:scrum流程、看板流程。Scrum流程是标准的敏捷开发流程,工作项层级为传统的scrum划分方法Epic->Feature->Story->Task&Bug,本项目为把工作划分的层级更清晰,选择了scrum流程。

    图片1.png

     

    代码托管

    3.1 创建仓库

    新建代码仓库时,选择“模板新建”,在搜索框中输入已经被公开为示例模板的仓库名称,选择该模板。

     图片2.png

    输入新的仓库名称(可以和模板仓库同名),即可创建代码仓

    图片3.png

    构建&发布

    4.1 构建工具

    嵌入式构建的工具主要是交叉编译工具链,交叉编译可以通俗理解成跨平台编译,就是在一种平台上使用该工具链进行编译,生成能运行在体系结构完全不同的另一种平台上的软件。比如在X86 CPU上编译出能运行在ARM内核平台上的程序,即使两个平台用的都是Linux系统,但该程序在X86 CPU平台上是不能运行的。

    在嵌入式开发之前,都要在性能良好的PC上建立适用于目标机的交叉编译工具链,可以网上下载或自己制作工具链,本文中使用DevCloud提供的适用于嵌入式构建的arm镜像环境。

    由于嵌入式产品的多样性,DevCloud提供的构建环境不可能涵盖所有场景,如不同的需求,可以制作包含项目工具链的私有镜像环境。

    4.2 推荐镜像类型

    目前,针对Gnu-arm构建推荐了三种已有镜像,本文使用的是第三种:

     

    3.1.png

    图片4.png

    4.3 创建构建任务

    新建任务,输入任务名,选择源码仓库

    图片5.png

    选择公共模板中的GNU-ARM

    图片6.png

    选择镜像gnuarm-7-2018-q2-update,输入构建详细信息

    图片7.png

    发布

    5.1 发布软件包

    将构建生成的软件包上传到软件发布仓库

    图片8.png

    下载发布包到本地

    图片9.png

    烧写

    6.1 烧写工具

    嵌入式主流的烧写工具种类很多,比如atmel公司推出的仅支持本公司系列ARM的SAM-BA,NXP公司推出的仅支持本公司系列ARM的Flash-Magic,本项目使用的板子为ST推STM32F系列芯片,因此我们使用STM32专用烧写工具进行软件包验证。

    下载并安装STM32 ST-LINK Utility v3.8.0.exe,该工具自带驱动,无需额外安装ST-Link驱动。

    图片10.png

    6.2 芯片烧写

    PC连接单板,获取芯片信息:Target->Connect

    图片11.png

    进行烧写验证: Target->Program&Verify…

    图片12.png

     

    6.3 查看效果

     图片13.png

    至此,恭喜您打通了DevCloud的各服务,完成了嵌入式云上开发环境的搭建。

     

    华为云DevCloud,5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网

    展开全文
  • 嵌入式项目开发流程概述

    千次阅读 2019-02-20 16:10:06
    一、嵌入式项目开发流程 1、在做某一个完整的嵌入式项目时,应该先结合着数据手册,把项目中需要用的的底层资源写好,配置好各个相应的寄存器。 2、当所有的底层驱动都调试完成后,就可以开始着手构思整个项目的...

    一、嵌入式项目的开发流程

    1、在做某一个完整的嵌入式项目时,应该先结合着数据手册,把项目中需要用的的底层资源写好,配置好各个相应的寄存器。

    2、当所有的底层驱动都调试完成后,就可以开始着手构思整个项目的框架了。

    3、当逻辑框架整理完成之后,按照框架将整个项目代码分成一个个小的模块来写。

    4、当所有的代码基本上都写完之后,调试到没有语法错误,能够编译、连接、运行通过,烧录到单片机中进行仿真调试,根据实际中出现的Bug及项目要求,进行代码的修改和完善。

    二、仿真调试过程中针对不同情况的处理方法

    1、在调试AD的时候,看AD各个寄存器的值,判断AD的逻辑是否正确。

    2、在调试按键和LED的时候,通过设置断点,看程序跑的对不对。在正确逻辑应该出现的地方设置一个断点,观察程序能否跑到断点处,如果可以跑到断点,说明此段代码正确,否则,代码逻辑有问题。

    3、如果怀疑有段程序没有执行,可以设置断点进行判断,程序跑到断点处就会停下来。如果想观察某个特定位置的寄存器值,可以在该出设置断点,程序跑到此处就会停下来,然后通过寄存器窗口观察。

    4、如果想知道一段程序运行的时间,可以在程序的开始处和结尾处,各设置一个断点,然后分布运行,通过时间窗口的差值计算出程序运行经过的时间。

    5、硬件上的错误就观察寄存器窗口的值是否配置正确,逻辑上的错误就设断点看程序在哪里跑错了。一般都是结合着看,先看底层配置对不对,再看逻辑是否正确。

    6、硬件连接正常是前提,寄存器在配置时一定要根据数据手册配置正确,不然无论怎么调试都调不好。

    展开全文
  • 学习路线:Linux入门、C语言、linux应用开发、linux系统开发、linux驱动 误区:今天学这、明天学那,资料太多,只看资料不动手 2什么是嵌入式系统 别动,你已经被嵌入式设备包围了 我们生活已经处处可见嵌入式系统...
  • 嵌入式开源项目

    2020-06-18 17:24:54
    嵌入式开源项目精选专栏
  • 嵌入式项目

    千次阅读 多人点赞 2018-01-13 17:34:13
    共享我研究生三年的嵌入式项目资料哦,需要的加我qq1653687969--先上点一些小资料·· (原创+图片+程序源码) 需要嵌入式arm和linux入门资料,项目资料,linux驱动资料的可以加我QQ哦!!愿意和你分享,希望大家...
  • 嵌入式Qt开发项目教程,算一本比较经典的嵌入式Qt入门级别的书籍。适合大学生入门以及想学习Qt嵌入式编程人看的。
  • RAM嵌入式项目实战开发

    千次阅读 2017-04-29 10:29:21
    对于有嵌入式技术基础的初学者来说,嵌入式项目实战是具有很大吸引力和挑战性的。同时,通过项目实践可以快速提升自己的实战技术,编程能力和项目开发能力。为了记录自己的学习历程,特写此文以回顾。 (一)arm...
  • 大学嵌入式物联网项目实训

    万人学习 2016-10-15 21:17:40
    参加此次项目实训的学员必须有一定的基础 ,... 1.Linux嵌入式交叉开发环境 2.文件应用编程开发 3.嵌入式串口通信开发 4.网络通信应用开发 5.Linux多任务应用开发 6.嵌入式web服务器开发 7.基于ARM的物联网控制系统开发
  • 嵌入式项目实战经验

    千次阅读 2020-06-01 09:11:35
    嵌入式项目实战经验分享,C/C++、Linux、STM32、51单片机、FPGA、IoT、OpenCV、数字图像处理、通信、算法!
  • 嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码嵌入式 项目源码...
  • 经常看微信公众号文章,虽然对嵌入式开源项目用得不多,但耳濡目染知道这是好东西,可以借势提升自己的代码水平,从代码逻辑到项目程序架构,再到项目需求刷新自己的认知。 之前认为尽快提升工作能力的一个选择是...
  • 嵌入式设计与开发项目程序设计部分模拟试题 频率控制器的功能设计与实现 3.1 LCD 显示界面 以下为参考界面, 实现过程中选手可修改, 但显示的内容应包含题目要求的数据项。 (1) 测量界面 显示项说明: ...
  • ARM嵌入式项目开发三位一体实战精讲
  • FPGA嵌入式项目开发实战(源代码) 嵌入式 , 项目开发 , 源代码
  • 何为嵌入式? 1、单片机相关 1.1 基于单片机的智能小车、智能机器人制作 1.2 基于Arduino的3D打印机制作 2、嵌入式Linux相关 2.1 智能扫地机器人 2.2 智能可穿戴类设备:智能安全头盔 2.3 智能可穿戴类设备:...
  • 本书围绕一个典型的嵌入式系统项目——农业信息采集控制系统的设计过程展开介绍,首先进行系统整体的软硬件设计,然后分嵌入式Linux系统移植和嵌入式Linux的应用开发两大部分对系统进行详细设计。嵌入式Linux系统...
  • 嵌入式linux项目开发常用免费工具: DLT:windows下log查看工具 SQLiteSpy:sqlite3数据库查看工具 teraterm:串口查看工具 WinSCP:scp板子传输文件工具 putty:ssh连接板子工具 VSCode:编码IDE VMware player:...
  • 嵌入式开发2048小游戏

    2021-07-08 23:12:05
    基于Cortex-A53内核Linux系统GEC6818开发板(粤嵌) (大三菜逼自己写的,基本功能都有,轻点喷。)
  • 项目实践一 需求:请将嵌入式输出日志.txt文件 用python 脚本输出Excel文档 例如:将以下.txt脚本使用python脚本转化 [10:41:22:398][20201201_10:41:22:398] [10:41:27:038] [10:41:27:039]== Rtl8710c IoT ...
  • 对许多嵌入式项目来说,系统设计师都倾向于选择实时操作系统(RTOS)。但RTOS总是必要的吗?答案是取决于具体的应用,因此了解我们要达到什么目标是决定RTOS是必要的还是花瓶的关键。
  • Android嵌入式开发资料

    2018-02-03 11:19:02
    Android UI 控件的使用、应用程序的开发、android下画图2D图形项目等源代码
  • 嵌入式开发Qt程序举例,分别是串口通讯、绘制曲线和FFT、俄罗斯方块,已测试通过,代码非常清晰
  • 下面小编就来给大家介绍下从事嵌入式软件开发的好处是什么吧。 一、从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为...
  • 嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程嵌入式项目开发过程...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,117
精华内容 45,246
关键字:

嵌入式开发项目