没有图我说个~毛(J)线(B)~对吧???

直接上一个以前做过的项目来说说怎么去从一个前后台的程序过度到利用操作系统去管理的你代码吧~以前想过直接用事件驱动的框架去编写代码的,无奈这方面的资料实在太少~而且我的水平也不足以胜任,既然现在在全力支持Raw-OS,那么就用RTOS的框架去描述这个工程lor,好了,直接上图了,没有图我说个~毛(J)线(B),一个ICT的例子,先给框图再说功能吧,也希望初学者能和小弟我一起讨论讨论,仅限于初学者哈~大牛不小心路过就不要吐槽小弟了~

这是一个简易ICT的模块框图。

至于ICT是个什么东东呢~各位可以自行google一下,不解释了~说多了都是泪~

这里就直接解释这个东西是拿来干什么用的

首先,ICT的作用是测试电路板的物理连通性而做的

那这里的话~我们有一个主控板(Master Board),若干个子板(Slave Board)

子板功能:负责测试待测试的电路板(UUT)的阻抗、电压和常态的电流~对于阻抗呢?首先我们会在选定的板卡上去留出测试点,或者你可以找一块电脑主板,认真看看,会发现很多的测试点,这就是我们肋完板之后会做ICT的测试,看看是否有元件虚焊,短接,掉件之类的,因为你想想,一个电路功能模块出现以上这些情况之后,一定会在某些关键点上发生阻抗值的改变,一定是。所以我们只要用板卡测出阻抗值不对就可以认定这个板卡有问题。不知道大家有没有见识过生产那边用人工检板那种盛况,好一点的公司会用专门的显示仪器做图像阴影扫描~SMT的时候会做,但是轮到插件过完波峰焊之后一般都是人工检板,省成本嘛~天朝嘛~老板嘛~天朝的老板嘛~你懂的~

对于电压呢?一样道理,主要是检查芯片和主要的供电端是否加电正确。

对于电流呢?如果不正常工作的情况下,常态电路是会有变化的

所以呢,综合起来,进入系统的任务划分~我们可以先简单的设计出4个任务了~

1.测试阻抗用的:MeasureImpedance

2.测量电压用的:MeasureVoltage

3.测量电流用的:MeasureCurrent

4.接收Master Board启动信息:GetMasterCmd

至于Master Board来说,是通过I2C总线去负责各个Slave Board的通信的,至于相关的任务,我们留到信号量学习完毕之后再去具体设计,目前先分工好Master Board和Slave Board的任务先

看图说话啊,对于Master Board来说,先接收按键的功能选择信息,然后启动Slave Board,收集各个Slave Board的测量信息,归总到Master Board上,然后将测量信息打印到LCD屏上做显示,同时将板次信息和结果写入到SD Card中留备份~至于Uart是Debug阶段用的。

又所以呢,对于Master Board来说,可以先设计出5个任务:

1.按键消息处理:KeyMsgProcess

2.启动Slave Board:MasterSendCmd

3.收集Slave Board测量信息:GetMeasureMsg

4.LCD显示结果:LcdDisp

5.结果存入SD Card:SdStore

然后,下一篇任务的API学习,然后具体我们设计相关的任务,以后也根据这个历程学习学习从无到有的设计吧~至于需求分析这些略过吧~以后有机会和大家分享分享

这些全都是只是抽象出来在or1200这个架构下验证程序设计的正确性,实际的项目是用Cotex-M4做主控完成的~刷屏这个当时真是搞死人了~

or1200下Raw-OS学习(例子篇)的更多相关文章

  1. 基于raw os 的事件触发系统

    Raw os的事件触发系统有以下特点: 1 基于UML的状态机理念设计,实现了有限状态机(fsm)以及层次状态机(HSM). 2 实现了活动对象(ACTIVE OBJECT)的特性,一个活动对象包含了 ...

  2. or1200下raw-os学习(任务篇)

    这次就来说说基于上一节介绍的系统框图去建立我们所需要的任务,顺便学习Raw-OS提供的API,根据上节的分析,对于Slave Board有如下设计: Slave Board有三个任务,分别负责测试阻抗 ...

  3. Java并发包下锁学习第一篇:介绍及学习安排

    Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一 ...

  4. Java并发包下锁学习第二篇Java并发基础框架-队列同步器介绍

    Java并发包下锁学习第二篇队列同步器 还记得在第一篇文章中,讲到的locks包下的类结果图吗?如下图: ​ 从图中,我们可以看到AbstractQueuedSynchronizer这个类很重要(在本 ...

  5. 如何系统学习C 语言(下)之 预处理命令篇

    大话c语言(下)之 预处理命令篇 预处理就是在编译之前,通过一些预处理命令对源代码进行管理和控制的过程. 由源代码得到可执行的程序,会经过预处理.编译.汇编和链接几个过程 预处理命令大致可以分为文件包 ...

  6. 一、React Native 搭建开发环境(1)(Mac OS - IOS项目篇)

    React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 原因:由于我想在一台电脑上同时开发IOS和Android两个 ...

  7. Unix和Linux下C语言学习指南

    转自:http://www.linuxdiyf.com/viewarticle.php?id=174074 Unix和Linux下C语言学习指南 引言 尽管 C 语言问世已近 30 年,但它的魅力仍未 ...

  8. [置顶] Firefox OS 学习——manifest.webapp结构分析

    在Firefox OS 学习——Gaia 编译分析  这篇文章多次提到manifest.webapp文件,对于做过android app 开发的人来说,都很熟悉Android.mk 和Manifest ...

  9. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

随机推荐

  1. LINUX设备驱动程序的注意事项(两)建设和执行模块

             <一>:设置測试系统 首先准备好一个内核源代码树,构造一个新内核,然后安装到自己的系统中.           <二>:HelloWorld模块 #inclu ...

  2. JAVA取整以及四舍五入

    JAVA取整以及四舍五入 import java.math.BigDecimal; //引入这个包 public class Test { public static void main(String ...

  3. java 通过sftp服务器上传下载删除文件

    最近做了一个sftp服务器文件下载的功能,mark一下: 首先是一个SftpClientUtil 类,封装了对sftp服务器文件上传.下载.删除的方法 import java.io.File; imp ...

  4. 《深入理解mybatis原理》 Mybatis初始化机制具体解释

    对于不论什么框架而言.在使用前都要进行一系列的初始化,MyBatis也不例外. 本章将通过下面几点具体介绍MyBatis的初始化过程. 1.MyBatis的初始化做了什么 2. MyBatis基于XM ...

  5. 边坡优化主题5——bzoj 1096 [ZJOI2007]仓库建设 解决问题的方法

    [原标题] 1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1998  Solved: 816 [id=10 ...

  6. Windows Phone开发(27):隔离存储A

    原文:Windows Phone开发(27):隔离存储A 在很多资料或书籍上都翻译为"独立存储",不过,我想了一下,决定将IsolatedStorage翻译为"隔离存储& ...

  7. [Unity3D]转让Android介面

    简单介绍 有一些手机功能.Unity没有提供对应的接口.比如震动,比如不锁屏,比如GPS.比如... 有太多的特殊功能Unity都没有提供接口.这时候,我们就须要通过使用Android原生的ADT编辑 ...

  8. Jetty安装学习并展示

    Jetty 的基本架构 Jetty 眼下的是一个比較被看好的 Servlet 引擎,它的架构比較简单,也是一个可扩展性和很灵活的应用server,它有一个基本数据模型,这个数据模型就是 Handler ...

  9. UseCase事件描述叙事流规范

    文化/fasiondog 整理的用例需求编写规范.分享部分UseCase事件描述叙事流规范.其中.标准5~10.12来自哪里<编写有效用例>([美国] Alistair Cockburn ...

  10. 谈论高并发(二十二)解决java.util.concurrent各种组件(四) 深入了解AQS(二)

    上一页介绍AQS其基本设计思路以及两个内部类Node和ConditionObject实现 聊聊高并发(二十一)解析java.util.concurrent各个组件(三) 深入理解AQS(一) 这篇说一 ...