CN106095459B - 一种自动完成嵌入式软件库的挑选与特化的实现方法 - Google Patents
一种自动完成嵌入式软件库的挑选与特化的实现方法 Download PDFInfo
- Publication number
- CN106095459B CN106095459B CN201610447537.1A CN201610447537A CN106095459B CN 106095459 B CN106095459 B CN 106095459B CN 201610447537 A CN201610447537 A CN 201610447537A CN 106095459 B CN106095459 B CN 106095459B
- Authority
- CN
- China
- Prior art keywords
- software
- circuit diagram
- circuit
- data
- software library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000010586 diagram Methods 0.000 claims abstract description 43
- 238000011161 development Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims abstract description 3
- 241000282312 Proteles Species 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 9
- 230000000007 visual effect Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种自动完成嵌入式软件库的挑选、特化与修改的实现方法,从PCB设计软件直接获取电路图特征文件或数据,然后把它们导入软件库配置软件;依据电路图特征文件或数据,由软件库配置软件自动挑选出所用到的所有芯片或设备的相关程序组件,并经过智能分析,推荐其它相关功能的程序组件供使用者进一步选择;依据电路图特征文件或数据,由软件库配置软件对挑选出来的程序组件自动进行特化与修改。由此生成一个特定应用组件集合,供进一步处理。这种方法由计算机代替人工工作,既提高开发效率,减少出错,而且把电路图设计与软件库可视化设计合二为一,大大简化了软件库配置软件的设计。
Description
技术领域
本发明涉及嵌入式软件自动化设计领域,尤其涉及单片机软件的自动化设计和技术实现。
背景技术
嵌入式系统是一种软硬件结合紧密的专用的计算机系统,它应用于特定场合,其主要特点是可剪裁、可配置。为了提高嵌入式系统的开发效率,通常人们需要建立软件库,在应用开发时可以直接调用所需的软件组件。由于嵌入式系统可选用的CPU或MCU种类繁多,而且外围的存储、数据采集、控制、通讯等设备种类也是不计其数,因此一个功能齐全的嵌入式软件库会显得非常庞大。在具体调用软件库的时候,通常由人工挑选合适的软件组件,然后对挑选出的组件进行特化(specialize)和修改(modify),以满足具体应用的需要。这个工作既关键又琐碎,需要既懂硬件又懂软件的高水平专业工程师来完成。人工方法不仅增加了开发成本,而且也容易出错。另外,如果使用计算机辅助完成以上所述工作,需要增加许多可视化配置界面,这使计算机辅助软件会显得更加复杂。因此,找到一种简便的、可替代人工的嵌入式软件库自动挑选、特化与修改的方法,显得十分必要。
发明内容
本发明的目的是提供一种简便快捷的、由计算机自动完成的嵌入式软件库组件挑选、组件特化(specialize)与修改(modify)的实现方法。
本发明的技术方案如下:
第一步,从PCB设计软件直接获取电路图特征文件或数据,然后把电路图特征文件或数据导入软件库配置软件;
电路图特征文件或数据包含电路中用到的芯片或设备的型号以及反映电路连接关系的信息;
芯片或设备型号以及电路网络名称等需要事先定义,不能冲突,使计算机能够自动识别;
第二步,依据电路图特征文件或数据,由软件库配置软件自动挑选出所用到的所有芯片或设备的相关程序组件(如驱动程序),并经过智能分析,推荐相关功能的程序组件供使用者进一步选择;
第三步,依据电路图特征文件或数据,由软件库配置软件对上一步挑选出来的程序组件自动进行特化(specialize)与修改(modify), 即确定参数或配置电路端口,以及修改部分软件,以符合电路图的要求和满足特定应用的需要;
由此生成一个特定应用组件集合,可供软件库配置软件或使用者做进一步的处理。
本发明的有益效果:
1、嵌入式软件库的组件挑选、特化与修改,这个工作既关键又琐碎,需要既懂硬件又懂软件的高水平专业工程师来完成。本发明由计算机代替人工工作,既提高软件开发效率,降低开发成本,缩短开发周期,而且也克服了人工容易出错的缺陷,提高了产品的可靠性。
2、本发明借用了PCB设计软件实现了编程可视化,把电路图设计与软件库可视化设计合二为一,显著提高了应用效果,大大简化了软件库配置软件的设计。
附图说明
图1本发明的技术方案流程图;
图2本发明的举例之电路原理图。
具体实施方式
以下我们结合附图和实例对本发明做进一步阐述。
一、本发明涉及的技术用语及定义
1、PCB设计软件
本发明所指的PCB设计软件,是指对外公开发行的收费或免费的、具有设计电路原理图以及PCB图等功能的专业工具软件。例如,常用的有Protel 99SE、Altium Designer系列、Cardence OrCAD/SPB/PSD、Mentor PADS/EN/WG、CadSoft EAGLE等。
2、电路图特征文件或数据
本发明所指的电路图特征文件或数据,是指从PCB设计软件直接或间接导出、或者可以从电路图(或PCB图等)提取出来的、包含电路中用到的芯片或设备等元器件的详细型号以及包含电路连接关系的文件或数据。
最典型的电路图特征文件是PCB设计软件Protel 99SE自动生成的尾缀为.NET的网络表(Netlist)文件,它包含了电路原理图中各种元器件的型号、编号和封装等信息,也包含了元器件之间的电路连接关系,即电路网络。这种网络表文件采用文本格式,是生成PCB图的基础,可直接为本发明所用。
网络表例如下:
[
U1
LQFP48
STM32F103C8T6
]
[
U2
SO-8
AT24C64
]
(
GND
U2-1
U2-2
U2-3
U2-4
)
(
RXD1
U1-31
)
(
SCL
U1-42
U2-6
)
(
SDA
U1-43
U2-5
)
(
TXD1
U1-30
)
需要说明的是,出于计算机自动识别的需要,在设计电路图时,必须采用一套事先规定好的电路图符号集。这套符号集定义了各种元器件名称和电路网络名称,这些名称互不冲突,计算机可以准确识别且不会产生歧义。芯片或设备等元器件名称一般可以直接采用厂家的命名,而电路网络命名则可以采用一些容易理解的符号,例如,MCU的串口收发端连线的电路网络可命名为RXD、TXD,I2C总线可用SDA、SCL表示。
二、本发明的具体实施步骤
步骤一,把电路图特征文件或数据导入软件库配置软件
在电路图设计完成之后,本发明的第一步工作是通过PCB设计软件获取电路图特征文件或数据,并把电路图特征文件或数据导入软件库配置软件。
1、嵌入式软件库
为了提高开发效率,软件开发人员一般都会建立或引用软件库。嵌入式软件库通常由处理器(CPU或MCU)配置程序、周边设备的驱动程序、常用库函数等组成。它提取了嵌入式系统中通用的软件部分,方便不同的应用项目移植使用。这种方法称为软件复用。软件复用是在软件开发过程中避免重复劳动的解决方案。通过软件复用,软件开发不再采用一切从零开始的模式,而是在已有的工作的基础上,充分利用过去积累的知识和经验。
以TreeOS ComLib软件构件库为例,它建立在TreeOS 1.0 MCU 构件化实时操作系统之上,内容涵盖了硬件抽象层、驱动程序、中间件以及用户层。它主要包含:
l 多种MCU配置程序:如STC、AVR、STM32等;
l 常用设备驱动程序:如Keyboard.c、RS232.c、I2C.c、PCF8563.c、24C64.c等组件;
l 常用的库程序:如数学运算、字符转换、界面显示、数据存取等。
这些由专家编写的、经过长期实践检验的软件组件,经过特化和简单修改就可以直接使用于不同的应用,极大地提高了软件开发效率。
本发明的技术操作对象是嵌入式软件库,它们可以是已对外公开发行的软件库,也可以是个人或单位内部使用的软件库。
2、软件库配置软件
本发明的技术载体称之为软件库配置软件,它是软件库管理工具的一个组成部分,其功能是帮助开发工程师从软件库中挑选所需的软件组件,并对组件进行特化和修改,以满足特定应用的要求。
步骤二,挑选组件
本发明的第二步工作是由软件库配置软件依据电路图特征文件或数据挑选适用的软件组件。例如,附图2是一个简化的原理图,结合TreeOS ComLib软件构件库,其做法是:
从电路图特征文件或数据中获知,应用系统需用到以下设备:单片机STM32F103C8T6、串口UART1、存储芯片AT24C64、I2C总线。相应地从软件库中挑出以下软件组件: MCU(STM32F103C8T6)、RS232、AT24C64、I2C(注:这些组件包括.c程序文件和.h头文件)。
另外,辅助设计软件经过智能分析,还会列出一些相关的组件,供使用者选择是否使用:例如RS485、E2PROM等。
步骤三,组件的特化与修改
本发明的第三步工作是对挑选出来的软件组件自动进行特化与修改,即确定参数或配置电路端口,以及修改部分软件,以符合电路图的要求和满足特定应用的需要。例如,对于I2C总线组件,需要配置其总线端口,即修改I2C.h头文件中的相关宏定义。
软件组件特化例:
#define I2C_SCL_H GPIOB->BSRR = GPIO_Pin_6
#define I2C_SCL_L GPIOB->BRR = GPIO_Pin_6
#define I2C_SDA_H GPIOB->BSRR = GPIO_Pin_7
#define I2C_SDA_L GPIOB->BRR = GPIO_Pin_7
#define I2C_SDA_read (GPIOB->IDR & GPIO_Pin_7)
另外,I2C.c文件中,i2c_init函数也需要修改,以适配电路图中指定的IO口。
软件组件修改例:
void i2c_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//使能时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//IO口配置:SCL and SDA
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOB, &GPIO_InitStructure);
I2C_SDA_H;
I2C_SCL_H;
}
三、本发明所述的对嵌入式软件库的挑选、特化与修改实现自动化的技术,可大大提高开发效率,并使嵌入式编程更加智能化。该技术已应用于TreeOS ComLib软件构件库,并成功应用在多个单片机应用项目上。实践表明,利用该软件库结合本发明技术,绝大多数应用项目可以实现70%以上的自动化编程。
Claims (7)
1.一种自动完成嵌入式软件库的挑选与特化的实现方法,其特征在于,包括以下步骤:
第一步,从PCB设计软件直接获取电路图特征文件或数据,然后把电路图特征文件或数据导入软件库配置软件;所述的电路图特征文件或数据包含电路中用到的芯片或设备的型号以及反映电路连接关系的信息;
第二步,依据电路图特征文件或数据,由软件库配置软件自动挑选出所用到的所有芯片或设备的相关程序组件,并经过智能分析,推荐相关功能的程序组件供使用者进一步选择;
第三步,依据电路图特征文件或数据,由软件库配置软件对上一步挑选出来的程序组件自动进行特化与修改,即确定参数或配置电路端口,以及修改部分软件,以符合电路图的要求和满足特定应用的需要;
由此生成一个特定应用组件集合,可供软件库配置软件或使用者做进一步的处理。
2.根据权利要求1所述的方法,其特征在于:所述的芯片或设备型号以及电路网络名称需要事先定义,不能冲突,使计算机能够自动识别。
3.根据权利要求1或2所述的方法,其特征在于:所述方法的技术操作对象是嵌入式软件库,它们是已公开发行的软件库或个人、单位内部使用的软件库。
4.根据权利要求1所述的方法,其特征在于:所述的PCB设计软件,是指对外公开发行的收费或免费的、具有设计电路原理图以及PCB图功能的专业工具软件,常用的有Protel99SE、Altium Designer系列、Cardence OrCAD/SPB/PSD、Mentor PADS/EN/WG、CadSoftEAGLE。
5.根据权利要求1所述的方法,其特征在于:所述的电路图特征文件或数据,是指从PCB设计软件直接或间接导出、或者可以从电路图或PCB图提取出来的、包含电路中用到的芯片或设备元器件的详细型号以及包含电路连接关系的文件或数据。
6.根据权利要求1所述的方法,其特征在于:所述的软件库配置软件,它是软件库管理工具的一个组成部分,其功能是帮助开发工程师从软件库中挑选所需的软件组件,并对组件进行特化和修改,以满足特定应用的要求。
7.根据权利要求2所述的方法,其特征在于:所述芯片或设备的名称直接采用厂家的命名,而电路网络命名则采用一些容易理解的符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610447537.1A CN106095459B (zh) | 2016-06-21 | 2016-06-21 | 一种自动完成嵌入式软件库的挑选与特化的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610447537.1A CN106095459B (zh) | 2016-06-21 | 2016-06-21 | 一种自动完成嵌入式软件库的挑选与特化的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106095459A CN106095459A (zh) | 2016-11-09 |
CN106095459B true CN106095459B (zh) | 2021-02-26 |
Family
ID=57238278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610447537.1A Active CN106095459B (zh) | 2016-06-21 | 2016-06-21 | 一种自动完成嵌入式软件库的挑选与特化的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095459B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609686A (zh) * | 2018-06-15 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 数据系统生成方法、装置、计算机设备、存储介质 |
CN111274623A (zh) * | 2018-12-04 | 2020-06-12 | 罗寄芳 | 一种工业自动化设计编程软件系统的设计方法 |
CN112148650B (zh) * | 2020-09-30 | 2022-07-19 | Oppo广东移动通信有限公司 | 一种存储控制器的设计方法、装置、设备以及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794339A (zh) * | 2010-03-23 | 2010-08-04 | 中兴通讯股份有限公司 | 一种实现印刷电路板可移植复用的方法和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590963B2 (en) * | 2003-11-21 | 2009-09-15 | Mentor Graphics Corporation | Integrating multiple electronic design applications |
US8028266B2 (en) * | 2008-07-31 | 2011-09-27 | International Business Machines Corporation | System and method for automated placement in custom VLSI circuit design with schematic-driven placement |
CN102968527B (zh) * | 2012-11-14 | 2016-08-03 | 中国科学院微电子研究所 | 参数化生成多倍强度驱动单元的方法 |
CN103309268B (zh) * | 2013-06-26 | 2016-08-24 | 杭州电子科技大学 | 一种at89c51单片机红外测温系统 |
CN104392043A (zh) * | 2014-11-24 | 2015-03-04 | 英业达科技有限公司 | 防止零件与机壳干涉的可程序化绘图系统及其方法 |
CN104811353A (zh) * | 2015-05-05 | 2015-07-29 | 浪潮电子信息产业股份有限公司 | 一种基于Linux系统的网卡性能测试环境自动搭建方法 |
CN105306302B (zh) * | 2015-11-04 | 2018-07-13 | 上海斐讯数据通信技术有限公司 | Qinq功能的自动化测试方法及系统 |
-
2016
- 2016-06-21 CN CN201610447537.1A patent/CN106095459B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794339A (zh) * | 2010-03-23 | 2010-08-04 | 中兴通讯股份有限公司 | 一种实现印刷电路板可移植复用的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106095459A (zh) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102087597B (zh) | 一种基于j2ee和构件集的可视化开发平台 | |
US9348960B1 (en) | Method, system, and computer program product for probing or netlisting a multi-fabric electronic design spanning across multiple design fabrics | |
CN112270149B (zh) | 验证平台自动化集成方法、系统及电子设备和存储介质 | |
CN107436762B (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
WO2002001424A2 (en) | System and method relating to verification of integrated circuit design | |
CN106095459B (zh) | 一种自动完成嵌入式软件库的挑选与特化的实现方法 | |
CN105446725B (zh) | 用于模型驱动开发的方法和系统 | |
CN101165694A (zh) | 专用集成电路中i/o块的优化布置和验证的方法和装置 | |
CN106843887A (zh) | 一种嵌入式定制化开发平台自动生成系统的实现方法 | |
CN106371847A (zh) | Windows xp系统下CPCI总线RS422通信驱动方法及系统 | |
CN100489777C (zh) | 智能平台管理接口韧体架构及其建立方法 | |
CN106933754A (zh) | 一种usb驱动识别方法及装置 | |
WO2021031137A1 (zh) | 人工智能应用开发系统、计算机设备及存储介质 | |
US7111275B2 (en) | Electronic circuit design analysis system | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
CN110222315A (zh) | 一种数据统计方法、系统及电子设备和存储介质 | |
US20060190882A1 (en) | System and method for generating assertions using waveforms | |
CN112947896A (zh) | 一种基于有向图的组件依赖分析方法 | |
CN105868104B (zh) | 一种跨平台的图形用户界面自动测试方法 | |
CN103257861B (zh) | 一种自动生成bios代码的方法及装置 | |
CN115758789A (zh) | 一种复杂实时嵌入式系统的软件架构设计与架构传递方法 | |
US8050784B2 (en) | Integrated programmer reference for industrial control device data | |
CN109144491B (zh) | 单片机开发平台 | |
CN113010129A (zh) | 虚拟演播厅全流程多终端板书提取方法和装置 | |
CN102855325A (zh) | 一种打开dxf文件的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210325 Address after: 100044 b1366, ground floor, Zhongfa Tianjiao electronic market, b1-f5, Lantian science and technology complex building, 32 Zhongguancun Street, Haidian District, Beijing Patentee after: Beijing Guanglun Electronic Technology Co.,Ltd. Address before: 100085 room 1006, 13th floor, mingkeyuan, Xierqi, Haidian District, Beijing Patentee before: Lin Tianxiao |
|
TR01 | Transfer of patent right |