CN106528221B - 一种微处理器的程序执行方法 - Google Patents
一种微处理器的程序执行方法 Download PDFInfo
- Publication number
- CN106528221B CN106528221B CN201610955198.8A CN201610955198A CN106528221B CN 106528221 B CN106528221 B CN 106528221B CN 201610955198 A CN201610955198 A CN 201610955198A CN 106528221 B CN106528221 B CN 106528221B
- Authority
- CN
- China
- Prior art keywords
- meta
- program
- binary
- statement
- binary codes
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种微处理器的程序执行方法,包括如下步骤:S1将程序按照最小功能切成元语句,每条元语句通过预编译生成对应的一条机器码即二进制代码,作为可执行单元,即二进制代码块;S2微控制单元MCU中规范各个元语句的二进制代码的运行环境和运行方法,使得元语句中的二进制代码能够按照规范写入指定的内存空间并控制程序指针按照二进制代码要求跳转执行。本发明的优点体现在:开发效率高,程序可读性好,灵活性好,执行速度快。
Description
技术领域
本发明涉及嵌入式领域,具体涉及一种微处理器的程序执行方法。
背景技术
在程序编写领域一般分为两大类,解释性执行和编译性执行。在PC领域比较著名的解释性执行是basic语言和python语言,而编译执行的语言代表是c、c++,以及java等。解释性语言是由用户输入一句就执行一句,逐句执行。执行过程为将ascii字符根据编程语言的语法来翻译成可执行的二进制机器码来执行。编译性语言是事先编写好程序以后整体翻译成二进制机器码来执行。其中的java语言可以说成第三类,java要将整个程序先编译转换成二进制的不可执行程序,并且需要在专门的java环境中执行。这里所谓的执行就是将机器码写入到指定的内存,并按照事先商定好的规则去跳转程序运行指针以及编辑内存数据等动作。
在嵌入式领域只有汇编语言或者C语言才能完成,工程师需要编写完成后进行编译,将程序代码翻译为MCU可以读懂的机器码来执行。
现有技术中的编译性语言开发效率低,但是运行效率高;解释性语言开发可识别效率高,但是运行效率低。
发明内容
本发明的目的是针对现有技术中的不足,提供一种针对嵌入式系统MCU程序开发的程序执行方法,在MCU中新规范针对特定二进制代码块的直接执行功能,这样编程的过程就是生成可直接执行的二进制代码,不再需要编译或者解释的环节。这种程序执行机制增加了程序编写的灵活性,对二进制元语句的调整编辑就好像编辑文本文件一样简单,但又不破坏二进制程序的执行效率。
为实现上述目的,本发明公开了如下技术方案:
一种微处理器的程序执行方法,包括如下步骤:
S1将程序按照最小功能切成元语句,每条元语句通过预编译生成对应的一条机器码即二进制代码,作为可执行单元,即二进制代码块;
S2微控制单元MCU中规范各个元语句的二进制代码的运行环境和运行方法,使得元语句中的二进制代码能够按照规范写入指定的内存空间并控制程序指针按照二进制代码要求跳转执行。
进一步的,不同的元语句的可执行单元之间能够在程序员的开发平台进行拼装组合。
进一步的,在可执行单元进行拼装组合时,表现形式包括现有的编程语言、新定义的编程语言、图形编程、语音指令或肢体动作指令。
本发明公开的一种微处理器的程序执行方法,具有以下有益效果:
1)与编译型程序相比,本发明的元语句预编译方式增加了程序编写过程的灵活性,不需要整个程序完全编译通过就可以执行部分指令。而执行效率上又优秀于传统解释型的编程方法。
2)本发明程序编写执行过程不需要专门的编译环节,在编程平台的表现形式上可以多样化,只要底层支持元语句即可,这样就可以出现各种语言的编程以及图形化编程(就好像软件的皮肤一样,可以作为UI来随意切换)。
具体实施方式
下面结合实施例对本发明作进一步描述。
本发明的核心在于提供一种新的程序执行方法,提高程序编写的灵活性。
具体公开了一种微处理器的程序执行方法,包括如下步骤:
S1将程序按照最小功能切成元语句,每条元语句通过预编译生成对应的一条机器码即二进制代码,作为可执行单元,即二进制代码块;
S2微控制单元MCU中规范各个元语句的二进制代码的运行环境和运行方法,使得元语句中的二进制代码能够按照规范写入指定的内存空间并控制程序指针按照二进制代码要求跳转执行。
作为具体实施例,不同的元语句的可执行单元之间能够在程序员的开发平台进行拼装组合。
作为具体实施例,在可执行单元进行拼装组合时,表现形式包括现有的编程语言、新定义的编程语言、图形编程、语音指令或肢体动作指令。
本发明是在微控制器领域结合了解释性程序以及编译性程序的优点,将程序预先分割成最小的功能元语句,并且将每个元语句编译为二进制代码。当程序员编写程序时候就是简单的将各个元语句进行顺序和参数的编辑,而这种编辑动作也就触发了按商定好的方式去修改组合那些预编译机器码块。这种修改后的机器码可以直接在MCU中执行。可以说这是一种全新的程序运行方式,即预编译模块运行模式。同样的除了要规范元语句到代码块的转换规则,同时也要规范mcu内存中保存以及执行这些二进制代码块的运行环境。
本发明定义的元语句在程序员的开发软件平台上可以有多种表现形式,他可以是c语言语法,也可以是python的语法,甚至是图形编程的方式。元语句得到的二进制程序可以直接部署到MCU的内存中,让MCU按照事先约定好的规范执行,这就可以达到甚至超过传统机器码的程序执行效率。
总结来说本发明提供了一种开发效率高,程序可读性好,灵活性好,执行速度快的全新的程序执行方法。
他的核心思路是将程序切成更小的元语句,并且将元语句都翻译成可执行的一组打包后的机器码,同时在内存中规范了执行调用这种机器码的方法(即执行)。
以上所述仅是本发明的优选实施方式,而非对其限制;应当指出,尽管参照上述各实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,其依然可以对上述各实施例所记载的技术方案进行修改,或对其中部分或者全部技术特征进行等同替换;而这些修改和替换,并不使相应的技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (2)
1.一种微处理器的程序执行方法,其特征在于,包括如下步骤:
将程序按照最小功能切成元语句,每条元语句通过预编译生成对应的一条机器码即二进制代码,作为可执行单元,即二进制代码块;
不同的元语句的可执行单元之间能够在程序员的开发平台进行拼装组合;
微控制单元MCU中规范各个元语句的二进制代码的运行环境和运行方法,使得元语句中的二进制代码能够按照规范写入指定的内存空间并控制程序指针按照二进制代码要求跳转执行。
2.根据权利要求1所述的一种微处理器的程序执行方法,其特征在于,在可执行单元进行拼装组合时,表现形式包括现有的编程语言、新定义的编程语言、图形编程、语音指令或肢体动作指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610955198.8A CN106528221B (zh) | 2016-11-03 | 2016-11-03 | 一种微处理器的程序执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610955198.8A CN106528221B (zh) | 2016-11-03 | 2016-11-03 | 一种微处理器的程序执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528221A CN106528221A (zh) | 2017-03-22 |
CN106528221B true CN106528221B (zh) | 2022-01-11 |
Family
ID=58325680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610955198.8A Active CN106528221B (zh) | 2016-11-03 | 2016-11-03 | 一种微处理器的程序执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528221B (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080680A1 (en) * | 2004-10-12 | 2006-04-13 | Majid Anwar | Platform independent dynamic linking |
CN103631971B (zh) * | 2013-12-20 | 2017-12-08 | 北京奇虎科技有限公司 | 一种可移植的执行体文件的重组方法和装置 |
-
2016
- 2016-11-03 CN CN201610955198.8A patent/CN106528221B/zh active Active
Non-Patent Citations (1)
Title |
---|
打造一个属于自己的机器人:mBot 可图形编程机器人;匿名;《https://post.smzdm.com/p/311302/》;20150709;第1,3,6,18-22页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106528221A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101354803B1 (ko) | 유형 추론 및 유형 지향 후기 바인딩 | |
US9367423B1 (en) | Methods, systems, and articles of manufacture for using multiple modes during execution of a program | |
JP2022031507A (ja) | ディープラーニングフレームワークにおける演算子の展開方法、展開装置及び電子機器 | |
US6934940B2 (en) | Source code transformation-temporary object reduction | |
CN111770116A (zh) | 一种执行智能合约的方法、区块链节点、存储介质 | |
CN103473168A (zh) | 一种热点程序的统计方法 | |
CA2820058A1 (en) | Multi-modal compiling apparatus and method for generating a hybrid codefile | |
CN104881396A (zh) | 图形化程序的编译文件形成方法 | |
CN117075909A (zh) | 用于实现并行编程的编译方法、电子设备和介质 | |
CN104484192A (zh) | 一种复杂多分支结构代码自动生成的方法 | |
CN105700934A (zh) | 一种智能编译方法和智能编译系统 | |
CN112269566B (zh) | 脚本生成处理方法、装置、设备及系统 | |
CN106528221B (zh) | 一种微处理器的程序执行方法 | |
TW200725411A (en) | Method for automatically translating a high level programming language into an extended activity diagram | |
JP5038760B2 (ja) | ソースコード変換装置及びソースコード変換方法 | |
KR20090011974A (ko) | 컴파일 대상 파일 추출 방법 | |
CN108427558A (zh) | 一种c编译器的窥孔优化方法 | |
CN114780382A (zh) | 安全冗余编译运行方法、计算机设备及可读存储介质 | |
KR20130063757A (ko) | 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체 | |
CN110018816B (zh) | 一种基于c/c++编译系统的虚拟机控制系统及其控制方法 | |
KR101658795B1 (ko) | 중간언어 생성기를 포함한 로봇 프로그래밍 툴과 그 중간 언어 코드를 수행할 수 있는 버츄얼 머신을 기반으로 하는 로봇 프로그래밍 방법 | |
JP2008204023A (ja) | プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 | |
Payer et al. | Lldsal: A low-level domain-specific aspect language for dynamic code-generation and program modification | |
US20090112568A1 (en) | Method for Generating a Simulation Program Which Can Be Executed On a Host Computer | |
KR101277145B1 (ko) | 공통 표현을 이용한 중간 언어 변환 방법과 그를 위한 시스템 및 컴퓨터로 읽을 수 있는 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |