KR101654194B1 - AVR software system and the method of control - Google Patents

AVR software system and the method of control Download PDF

Info

Publication number
KR101654194B1
KR101654194B1 KR1020140068664A KR20140068664A KR101654194B1 KR 101654194 B1 KR101654194 B1 KR 101654194B1 KR 1020140068664 A KR1020140068664 A KR 1020140068664A KR 20140068664 A KR20140068664 A KR 20140068664A KR 101654194 B1 KR101654194 B1 KR 101654194B1
Authority
KR
South Korea
Prior art keywords
cpu core
execution
execution program
program
module
Prior art date
Application number
KR1020140068664A
Other languages
Korean (ko)
Other versions
KR20150140178A (en
Inventor
김은주
Original Assignee
김은주
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 김은주 filed Critical 김은주
Priority to KR1020140068664A priority Critical patent/KR101654194B1/en
Publication of KR20150140178A publication Critical patent/KR20150140178A/en
Application granted granted Critical
Publication of KR101654194B1 publication Critical patent/KR101654194B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 에이브이알 소프트웨어 시스템 및 그 제어 방법에 관한 것으로서, 보다 상세하게는 가상화 시뮬레이션을 이용하여 미리 실습 및 학습이 가능하여 실제 현장에 바로 적용 가능한 에이브이알 소프트웨어 시스템 및 그 제어 방법에 관한 것이다.
본 발명은 ISP 로딩부를 통해 실행 프로그램을 Flash 메모리에 전송하는 단계; 상기 Flash 메모리에서 실행 프로그램을 Main 메모리와 CPU Core에 전달하여, 상기 실행 프로그램의 실행 결과를 IPC(interprocessor communication)를 통해 UI(user interface)모듈에 출력하는 단계; 및 상기 실행 프로그램을 트레이닝 키트에 로딩하여 최종 실행하는 단계;를 포함하여 구성된다.
The present invention relates to an AV software system and a control method thereof. More particularly, the present invention relates to an AV software system and its control method that can be practiced and learned in advance by using virtualization simulation and can be directly applied to an actual site.
Transmitting an execution program to a flash memory via an ISP loading unit; Transferring the execution program from the flash memory to the main memory and the CPU core, and outputting the execution result of the execution program to a UI (user interface) module through an interprocessor communication (IPC); And loading the execution program into a training kit for final execution.

Description

에이브이알 소프트웨어 시스템 및 그 제어 방법{AVR software system and the method of control}[0001] The present invention relates to an AVR software system,

본 발명은 에이브이알(AVR; ATMEL 사에서 제작된 RISC 구조의 마이크로프로세서) 소프트웨어 시스템 및 그 제어 방법에 관한 것으로서, 보다 상세하게는 기존 하드웨어 시스템의 지역적, 공간적 제약을 해결하기 위해 소프트웨어적으로 구현하고, 소프트웨어를 통한 가상화 시뮬레이션을 이용하여 미리 실습 및 학습이 가능하여 실제 현장에 바로 적용 가능한 에이브이알 소프트웨어 시스템 및 그 제어 방법에 관한 것이다.[0001] The present invention relates to a software system and a control method thereof for AVR (Microprocessor Architecture of RISC structure manufactured by Atmel), and more particularly to a software system for resolving regional and spatial constraints of existing hardware systems , And a method and a control method thereof that can be practiced and learned in advance by using virtualization simulation through software and can be directly applied to a real site.

일반적으로 마이크로 프로세서 실습을 위해서는 고가의 트레이닝 키트를 사용하기 때문에 실험 준비가 어렵고, 작업 과정이 복잡하다.Generally, it is difficult to prepare the experiment because the expensive training kit is used for microprocessor training, and the work process is complicated.

특히 고가의 트레이닝 키트가 위치한 실험실을 찾아 가야 하고, 한정된 시간 내에 실습을 끝내야 하는 문제로, 다양한 실습 코딩과 디버깅이 필수인 실습 현장에서 편리하게 사용하기에는 어려웠다.Especially, it is very difficult to use it in the field of practice where various practice coding and debugging are indispensable because it is necessary to go to a laboratory where an expensive training kit is located, and finish the training within a limited time.

예를 들어, 도 1에서 보는 바와 같이 종래에는 실습 프로그램(100)을 코딩 후 컴파일 한 후, 트레이닝 키트(120)에 ISP를 이용한 프로그램 전송이 이루어진 후 동일한 트레이닝 키트 또는 다른 키트(110)로 디버그한 후 문제가 있으면 다시 코딩을 반복한다.For example, as shown in FIG. 1, conventionally, the training program 100 is coded and then compiled. Then, the program is transmitted to the training kit 120 using an ISP and then debugged by the same training kit or another kit 110 If there is a problem, repeat the coding again.

자세하게는 도 2에서 보는 바와 같이 프로그램 수정 및 디버그가 계속 발생할 경우 프로그램 컴파일 및 실행 이미지 생성 과정을 계속 반복하게 되는 문제가 생긴다.More specifically, as shown in FIG. 2, when the program modification and the debugging continue, the program compilation and the execution image generation process are repeated.

즉 트레이닝 키트를 이용한 실험을 위해 PC 상에서 개발환경 프로그램을 구동하고, 실습할 프로그램을 작성한 후, 이를 목적 트레이닝 키트에 적합하도록 컴파일한 후, ISP 전송 프로그램과 하드웨어를 이용하여 목적 트레이닝 키트에서 실행한 후 최종 실습 프로그램의 결과를 해결하는 복잡함이 있었다.In other words, for the experiment using the training kit, the development environment program is run on the PC, the program to be practiced is written, the program is compiled to fit the purpose training kit, the program is executed in the objective training kit using the ISP transmission program and hardware There was a complication in solving the results of the final training program.

또한 해당 장비가 있어야 실습이 가능하기 때문에 별도의 공간에서 학습하는데 여러 가지 제약 사항이 따른다.In addition, there are various limitations in studying in a separate space because equipment is required to practice.

또한 기존에 트레이닝키트 에물레이터는 사용하기 어렵고 실행에 따라 I/O포트를 통해 조회하거나 메모리의 단순 수치조회만 가능한 문제점이 있었다.In addition, the conventional training kit emulator is difficult to use, and there is a problem in that it can be inquired through the I / O port or only a simple numerical inquiry of the memory according to the execution.

한편, 마이크로 컴퓨터의 실습을 위한 주된 모듈들은 보통 교육과정 상 7가지 정도를 따른다.On the other hand, the main modules for the practice of microcomputer usually follow about seven courses in the curriculum.

즉, LED 모듈 켜기 실습, 7 Segment 구동에 대한 실습, Key PAD 모듈의 실습, ADC를 이용한 Analog Digital Convertor 실습, LCD 모듈을 이용한 Text 표기 실습, Timer를 응용한 LCD 또는 7 segment 연동 실습 등이 있다.This includes practice of turning on LED module, practice of 7 segment driving, practice of Key PAD module, analog digital converter practice using ADC, text marking practice using LCD module, and LCD or 7 segment interlocking practice using timer.

그러나 상술한 7가지 실습 중심의 종래 에물레이터는 개발툴에서 제공하는 UI가 없는 단순한 제품이고, 지역적, 공간적 제약이 많았다.However, the conventional emulator of the above-mentioned seven exercises is a simple product without the UI provided by the development tool, and has many regional and spatial constraints.

한편 한국등록특허 제1059347호는 마이크로컨트롤러; 상기 마이크로컨트롤러와 전기적 접속을 이루는 복수개의 범용입출력블록; 및 상기 MCU의 특수기능을 수행하는 핀들과 전기적인 접속을 이루는 특수기능연결블록을 포함하는 트레이닝키트용 마이크로컨트롤러 모듈 및 이를 포함하는 트레이닝 키트를 제공한다.Korean Patent No. 1059347 discloses a microcontroller; A plurality of general-purpose input / output blocks electrically connected to the microcontroller; And a special function connection block for establishing an electrical connection with pins that perform special functions of the MCU, and a training kit including the microcontroller module.

즉, 기존 MCU 각 핀의 특수기능을 그대로 사용할 수 있으면서도 버스 커넥터를 통해 범용입출력포트로도 사용할 수 있게 하여 설계자의 의지에 따라 새로운 다양한 회로를 용이하게 설계할 수 있지만, 고가의 트레이닝 키트를 사용하기 때문에 실험 준비가 어렵고, 작업 과정이 복잡하며, 특히 한정된 시간 내에 실습을 끝내야 하는 문제로, 다양한 실습 코딩과 디버깅이 필수인 실습 현장에서 편리하게 사용하기 어려웠다.In other words, while it is possible to use the special functions of each pin of the existing MCU, it can be used as a universal input / output port through the bus connector, and it is possible to easily design various new circuits according to the designer's will. However, Therefore, it is difficult to prepare for the experiment, the work process is complicated, and it is difficult to use it conveniently in the practice field where a variety of practice coding and debugging are necessary.

또한 한국등록특허 제0269024호는 원칩 마이크로프로세서를 경유하여 프로그램 데이터를 롬에 기록하기 위한 이피롬 라이터, 64K바이트의 프로그램 영역과 64K바이트의 데이터 메모리 영역을 동일 어드레스로 설정할 수 있거나 또는 각각 32K바이트의 독립된 프로그램 메모리 영역과 데이터 메모리영역을 동일 어드레스로 확보하고, 잔여 사용 가능영역은 프로그램 메모리 및 데이터 메모리를 동시에 억세스할 수 있는 영역을 갖는 1쌍의 롬과 램, 클럭과 원칩마이크로프로세서 사이에 설치되고 제어버스로 보 레이트 제어신호를 출력하는 보 레이트 컨트롤러 및 아이오 디코더의 출력신호에 의해 제어되고 보 레이트 및 시리얼포트 변경에 요구되는 메뉴를 표시하여 선택 변경할 수 있도록 해주는 액정 패널 컨트롤러를 갖는 디스플레이를 포함하는 구성으로 이루어져 있고, 마이콤 학습 효율을 높일 수 있음과 동시에 시리얼 포트와 보 레이트 변경을 디스플레이를 통한 메뉴 선택으로 행할 수 있도록 한다.Korean Patent No. 0269024 discloses an EPROM writer for writing program data on a ROM via a one-chip microprocessor, a 64K byte program area and a 64K byte data memory area can be set to the same address, or a 32K byte An independent program memory area and a data memory area are reserved at the same address, and the remaining usable area is provided between a pair of ROM and RAM having an area where a program memory and a data memory can be accessed simultaneously, a clock and a one-chip microprocessor A display having a liquid crystal panel controller controlled by an output signal of a baud rate controller and an iodo decoder for outputting a baud rate control signal to a control bus and for displaying and changing a menu required for baud rate and serial port change, Configuration Made and, at the same time can improve the learning efficiency of the microcomputer it is to be performed in a menu selection through the display changes to the serial port and baud rate.

그러나 학습 중에 종종 행해지는 명령어 변경 또는 디버깅 등을 외부 디스플레이를 통해 하더라도, 다시 트레이닝 키트를 이용한 실험이 불가피해져 실습 시간이 장기화 되는 문제가 있었다.However, even if an instruction change or debugging often performed during learning is performed through an external display, the experiment using the training kit again becomes inevitable, and the practice time is prolonged.

즉, 단순히 디스플레이를 통한 메뉴 선택으로 실습을 단순히 하는 것 보다 근원적인 해결을 위한 새로운 개념의 실습 디바이스가 요구되었다.That is, a new concept of practice device is required to solve the root cause rather than merely practicing with menu selection through display.

따라서 복잡한 실행 과정을 지역적, 공간적 제약 없이 해결할 수 있는 즉답적이고 직관적이며 가독성이 뛰어난 Windows UI를 이용한 에물레이터가 필요하게 되었다.Therefore, there is a need for an emulator that uses a responsive, intuitive, and readable Windows UI that can solve complicated execution processes without local or spatial limitations.

상술한 문제점을 해결하고자 본 발명은 기존 하드웨어 시스템의 지역적, 공간적 제약을 해결하기 위해, 기존 하드웨어 시스템의 모든 기능을 이용할 수 있는 소프트웨어를 통한 가상화 시뮬레이션으로 미리 실습 및 학습이 가능한 에이브이알 소프트웨어 시스템 및 그 제어 방법을 제공하는 데 목적이 있다.In order to solve the above-mentioned problems, the present invention is directed to an Ave Al software system capable of practicing and learning in advance by virtualization simulation through software that can utilize all the functions of existing hardware systems in order to solve regional and spatial constraints of existing hardware systems, and And to provide a control method.

또한 본 발명은 트레이닝 키트의 실행 유닛과 Windows상의 UI가 연계 되어 가상화 시뮬레이션이 가능한 시스템과 이를 이용하여 실제 현장에서 실습 및 학습이 가능한 방법을 제공하는 데 목적이 있다.It is another object of the present invention to provide a system capable of simulating virtualization by linking an execution unit of a training kit and a UI on a Windows, and a method of practicing and learning in actual field using the system.

본 발명은 ISP 로딩부를 통해 실행 프로그램을 Flash 메모리에 전송하는 단계; 상기 Flash 메모리에서 실행 프로그램을 Main 메모리와 CPU Core에 전달하여, 상기 실행 프로그램의 실행 결과를 IPC(interprocessor communication)를 통해 UI(user interface)모듈에 출력하는 단계; 및 상기 실행 프로그램을 트레이닝 키트에 로딩하여 최종 실행하는 단계;를 포함하여 구성된다.Transmitting an execution program to a flash memory via an ISP loading unit; Transferring the execution program from the flash memory to the main memory and the CPU core, and outputting the execution result of the execution program to a UI (user interface) module through an interprocessor communication (IPC); And loading the execution program into a training kit for final execution.

일실시예에 있어서, 상기 실행 프로그램의 실행 결과를 IPC를 통해 UI(user interface)모듈에 출력하는 단계는, 상기 CPU Core는 각각의 출력 모듈 Sample 프로그램을 이용하여 검증하되, Timer 및 Interrupt는 ADC 변환기와 시계 Sample 프로그램을 이용하여 검증하거나, Windows UI 및 각각의 출력 모듈은 테스트 Sample 프로그램을 작성 하여 검증 하는 단계;를 포함하여 구성된다.In one embodiment, the step of outputting the execution result of the execution program to the UI (user interface) module through the IPC may include verifying the CPU core using each output module sample program, And a clock sample program, or the Windows UI and each output module are used to create and verify a test sample program.

일실시예에 있어서, 상기 UI(user interface)에 출력하는 단계는, GDI(graphics device interface) 영역을 double buffering 하며 표시될 시점에서 중복 표시를 막기 위하여 표시 영역에 대한 리젼(region)을 무효화(Invalidate)시킨 후 이벤트(Event)가 없는 아이들(Idle) 시점에 모아서 표시하는 단계;를 포함하여 구성된다.In one embodiment, the step of outputting to the user interface (UI) includes double buffering a graphics device interface (GDI) area and invalidating a region of the display area to prevent duplication of display And collecting and displaying an idle time at which there is no event.

일실시예에 있어서, 상기 실행 프로그램의 실행 결과를 IPC(interprocessor communication)를 통해 UI(user interface)모듈에 출력하는 단계는, 상기 CPU core 에서 외부 입력에 따른 CPU 내부 인터럽트 처리 및 IPC를 통한 자체 인터럽트 처리를 위해 상기 메모리들을 Trigger시킨 후 Polling으로 검사하는 단계;를 포함하여 구성된다.In one embodiment, the step of outputting the execution result of the execution program to a UI (user interface) module via an interprocessor communication (IPC) may include a CPU internal interrupt process according to an external input and a self interrupt Triggering the memories to check for polling is performed.

일실시예에 있어서, 상기 CPU core는 상기 Main 메모리를 Runtime 메모리로 구성시킨다.In one embodiment, the CPU core configures the main memory as a runtime memory.

일실시예에 있어서, 상기 IPC를 통하여 상기 Main 메모리와 IO 포트를 Mapping하고, 이를 Shadowing 하여 UI 모듈로 전달한다.In one embodiment, the main memory and the IO port are mapped through the IPC, and the mapping is performed to the UI module.

본 발명은 에이브이알 소프트웨어 시스템에 있어서, 실행 프로그램을 입력받아 Flash 메모리에 전송하는 ISP 로딩부; 상기 Flash 메모리에서 실행 프로그램을 Main 메모리를 통해 전달받아 실행하는 CPU Core; 및 상기 실행 프로그램의 실행 결과를 IPC(interprocessor communication)를 통해 출력하는 UI(user interface)모듈;로 구성되되, 상기 실행 프로그램이 디버깅을 거쳐 프로그램 트레이닝 키트로 로딩되어 실행된다.The present invention relates to an AV software system, comprising: an ISP loading unit for receiving an execution program and transferring the execution program to a flash memory; A CPU Core receiving and executing an execution program from the Flash memory through the main memory; And a UI (user interface) module for outputting an execution result of the execution program through an IPC (interprocessor communication), wherein the execution program is debugged and loaded into a program training kit and executed.

본 발명에 따르면 기존 하드웨어 방식인 트레이닝키트의 실습에 따른 경제적 부담과 실행과정의 불편함을 보완하며, 소프트웨어 방식이라 이동성이 편해 모바일기기와 같은 차후 다른 매체로의 응용이 편리하고, 오프라인 상의 고가의 트레이닝 키트가 위치한 실험실이 아닌 가정 또는 원격 교육기관 등에서 용이하게 실행할 수 있다.According to the present invention, the economic burden due to the practice of the training kit, which is a conventional hardware type, and the inconvenience of the execution process are compensated. Since the software is portable, it is convenient to apply to other media such as mobile devices, It can be easily carried out in a home or a remote educational institution rather than in a laboratory where a training kit is located.

본 발명에 따르면 트레이닝키트 에물레이터를 이용하여 1차 적으로 실습을 한 후 2차적으로 직접 트레이닝 키트에 적용하여 실습 시간과 학습시간을 단축할 수 있거나, 수정 사항을 1차 실습 후에도 고칠 수 있어 개발 시간을 단축할 수 있다.According to the present invention, it is possible to shorten the practice time and the learning time by applying the training kit firstly using the emulator, and secondarily applying the training kit to the direct training kit, or to correct the correction after the first training, Can be shortened.

도 1은 종래 발명에 따른 AVR 시스템의 프로그램 흐름을 전체적으로 보여주는 도면이다.
도 2는 종래 발명에 따른 AVR 시스템의 작동 순서를 보여주는 플로챠트이다.
도 3은 본 발명에 따른 에이브이알 소프트웨어 시스템의 전체적인 프로그램 흐름 및 구성을 보여주는 도면이다.
도 4는 본 발명에 따른 에이브이알 소프트웨어 시스템의 작동 순서를 차례로 보여주는 도면이다.
FIG. 1 is a diagram showing a program flow of an AVR system according to the prior art.
2 is a flowchart showing an operation sequence of the AVR system according to the prior art.
FIG. 3 is a diagram showing an overall program flow and configuration of an AV software system according to the present invention.
FIG. 4 is a diagram showing an operation sequence of an AV software system according to the present invention in order.

본 발명을 충분히 이해하기 위해서 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 설명한다. 본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상세히 설명하는 실시예로 한정되는 것으로 해석되어서는 안 된다. For a better understanding of the present invention, a preferred embodiment of the present invention will be described with reference to the accompanying drawings. The embodiments of the present invention may be modified into various forms, and the scope of the present invention should not be construed as being limited to the embodiments described in detail below.

예를 들어 Windows OS 또는 다른 OS에서 작동하거나 Visual Studio C++ 등의 다양한 프로그램으로 작성될 수 있다.For example, it can run on Windows OS or other OS, or it can be written in various programs such as Visual Studio C ++.

본 실시예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 따라서 도면에서의 요소의 형상 등은 보다 명확한 설명을 강조하기 위해서 과장되어 표현될 수 있다. 각 도면에서 동일한 부재는 동일한 참조부호로 도시한 경우가 있음을 유의하여야 한다. 또한, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 공지 기능 및 구성에 대한 상세한 기술은 생략된다.
The present embodiments are provided to enable those skilled in the art to more fully understand the present invention. Therefore, the shapes and the like of the elements in the drawings can be exaggeratedly expressed to emphasize a clearer description. It should be noted that in the drawings, the same members are denoted by the same reference numerals. Further, detailed descriptions of well-known functions and configurations that may be unnecessarily obscured by the gist of the present invention are omitted.

도 3과 도 4에서 보는 바와 같이, 본 발명은 실행 프로그램을 입력받아 Flash 메모리에 전송하는 ISP 로딩부(11)와, 상기 Flash 메모리(12)에서 실행 프로그램을 Main 메모리(13)를 통해 전달받아 실행하는 CPU Core(14)와, 상기 실행 프로그램의 실행 결과를 IPC(interprocessor communication; 16)를 통해 출력하는 UI(user interface)모듈(18)로 크게 나뉘어 구성된다.As shown in FIG. 3 and FIG. 4, the present invention includes an ISP loading unit 11 for receiving an execution program and transferring the execution program to the Flash memory, and an execution program in the Flash memory 12 via the main memory 13 And a UI (user interface) module 18 for outputting the execution result of the execution program through an interprocessor communication (IPC)

여기에 인터럽트 모듈(17)에서의 인터럽트 발생을 Main 메모리(13)에 연결하기 위한 타이머(15)가 더 추가된다.Here, a timer 15 is further added for connecting the occurrence of an interrupt in the interrupt module 17 to the main memory 13.

즉 도 4의 A 단계에서 E 단계를 거쳐 실행 프로그램(1)의 실행 상태를 보여주는 UI(user interface) 화면(2)을 통해 디버깅을 거쳐 최종 실행 완료된 결과(1')는 프로그램 트레이닝 키트(3)로 로딩되어 최종 실행된다.That is, the results (1 ') that have been debugged through the UI (user interface) screen 2 showing the execution state of the execution program 1 through the step A in FIG. And finally executed.

구체적으로 살펴보면, ISP 로딩부(11)는 상기 CPU Core(14)에서 외부 입력에 따른 CPU Core(14) 내부 인터럽트 처리 및 IPC(16)를 통한 자체 인터럽트 처리를 위해 메모리들을 Trigger시킨 후 Polling으로 검사한다.Specifically, the ISP loading unit 11 triggers memories for internal interrupt processing of the CPU Core 14 according to external inputs and its own interrupt processing through the IPC 16 at the CPU Core 14, do.

상기 CPU Core(14)는 각각의 출력 모듈 Sample 프로그램을 이용하여 검증할 수 있다.The CPU Core 14 can verify each output module sample program.

예를 들어 타이머(15) 및 인터럽트 모듈(17)은 ADC 변환기와 시계 Sample 프로그램을 이용하여 검증하거나, Windows UI 및 각각의 출력 모듈은 테스트 Sample 프로그램을 작성 하여 검증한다.For example, the timer 15 and the interrupt module 17 may be verified using an ADC converter and a clock sample program, or a Windows UI and each output module may be verified by writing a test sample program.

또한 상기 CPU Core(14)는 상기 Main 메모리(13)를 Runtime 메모리로 구성시킨다.Also, the CPU core 14 configures the main memory 13 as a runtime memory.

즉 CPU Core(14)는 Runtime 메모리를 통해 Sample 프로그램을 이용하여 검증하고, Timer 및 Interrupt는 ADC 변환기와 시계 Sample 프로그램을 이용하여 검증하며, Windows UI 및 각각의 출력 모듈은 테스트 Sample 프로그램을 작성 하여 검증한다.In other words, CPU Core (14) verifies by using sample program through runtime memory, and Timer and Interrupt are verified by ADC converter and clock sample program. Windows UI and each output module write test sample program and verify do.

예를 들어, 본 발명에 따른 IPC(16)를 통하여 상기 Main 메모리(13)와 IO 포트를 Mapping하고, 이를 Shadowing 하여 UI 모듈(18)로 전달한다.For example, the main memory 13 and the IO port are mapped through the IPC 16 according to the present invention, shadowed and transferred to the UI module 18.

또한 IPC(16)로 전달받은 메시지는 UI 모듈(18)을 통하여 분석된 후 뒷단의 입출력 모듈로 전달하고 제어된다.In addition, the message transmitted to the IPC 16 is analyzed through the UI module 18, and then transmitted to the input / output module of the rear end.

또한 상기 Flash 메모리(12)로 전송 완료 후 초기화(Reset Start)할 수도 있다.Also, it may be initialized (Reset Start) after the transfer to the flash memory 12 is completed.

최종 시뮬레이션 결과를 정확하게 표현하기 위하여, UI 모듈(18)은 GDI(graphics device interface) 영역을 double buffering 하며, 표시될 시점에서 중복 표시를 막기 위하여 표시 영역에 대한 리젼(region)을 무효화(Invalidate)시킨 후 이벤트(Event)가 없는 아이들(Idle) 시점에 모아서 UI 모듈(18)에 출력한다.
In order to accurately express the final simulation result, the UI module 18 doubles buffering the graphics device interface (GDI) area and invalidates the region for the display area in order to prevent duplicate display at the time of display (Idle) at which there is no post-event (Event), and outputs it to the UI module 18.

이하 본 발명의 실시를 위한 에이브이알 소프트웨어 시스템 제어 방법에 대하여 자세히 설명한다.Hereinafter, a method of controlling the AV software system according to the present invention will be described in detail.

먼저, ISP 로딩부를 통해 실행 프로그램을 Flash 메모리에 전송한다.First, the execution program is transferred to the flash memory via the ISP loading unit.

그리고, 상기 Flash 메모리에서 실행 프로그램을 Main 메모리와 CPU Core에 전달하여, 상기 실행 프로그램의 실행 결과를 IPC를 통해 UI모듈에 출력한다.Then, the execution program is transferred from the flash memory to the main memory and the CPU core, and the execution result of the execution program is output to the UI module through the IPC.

계속하여, 상기 실행 프로그램을 트레이닝 키트에 로딩하여 최종 실행한다.Subsequently, the execution program is loaded into the training kit and finally executed.

추가적으로, 상기 CPU core 에서 외부 입력에 따른 CPU Core 내부 인터럽트 처리 및 IPC를 통한 자체 인터럽트 처리를 위해 메모리들을 Trigger시킨 후 Polling으로 검사한다.In addition, the CPU core triggers the memories in order to process internal interrupts of the CPU core according to the external input and its own interrupt processing through the IPC, and then polls the memories.

또한 상기 CPU core는 상기 Main 메모리를 Runtime 메모리로 구성시켜 구동시킨다.Also, the CPU core drives the main memory as a runtime memory.

또는 상기 IPC를 통하여 상기 Main 메모리와 IO 포트를 Mapping을 이용하고, 이를 Shadowing 하여 UI 모듈로 전달한다.Alternatively, the main memory and the IO port are mapped through the IPC, and the mapping is carried out to the UI module.

IPC로 전달받은 메시지는 UI를 통하여 분석된 후 뒷단의 입출력 모듈로 전달하고 제어된다.The message delivered to the IPC is analyzed through the UI and then transferred to the I / O module on the rear end and controlled.

각 경우에 따라 상기 Flash 메모리로 전송 완료 후 초기화할 수 있다.
And may be initialized after completion of transmission to the flash memory according to each case.

<실시예1>&Lt; Example 1 >

본 발명의 일실시예에 따라 시뮬레이션 해당 항목에 대한 Sample 각각의 프로그램을 작성하여 단계 별로 검증할 수 있다.According to the embodiment of the present invention, each program of the sample for the corresponding item of the simulation can be created and verified step by step.

예를 들어, ISP 로딩부는 프로그램 실행에 필요한 전 단계(프로그램 적재 및 초기화) 까지를 검증 한다.For example, the ISP loading unit verifies all the steps necessary to execute the program (program loading and initialization).

CPU Core는 각각의 출력 모듈 Sample 프로그램을 이용하여 검증한다.CPU core is verified by using each output module sample program.

또한 Timer 및 Interrupt는 ADC 변환기와 시계 Sample 프로그램을 이용하여 검증할 수 있다.Timers and interrupts can also be verified using ADC converters and clock sample programs.

그리고 Windows UI 및 각각의 출력 모듈은 테스트 Sample 프로그램을 작성 하여 검증 한다.Then, the Windows UI and each output module create and test a test sample program.

최종적으로 각 모듈을 작성 후 실제 트레이닝 키트로 이관하여 정상 유무를 검증 한다.
Finally, each module is created and transferred to the actual training kit to verify whether it is normal.

<실시예2>&Lt; Example 2 >

본 발명의 일실시예에 따라 Amtel사의 Atmega128 AVR 트레이닝 키트들을 기준으로 실시한다.In accordance with one embodiment of the present invention, the Atmega128 AVR training kits of Amtel are used.

본 발명에 따른 실행 프로그램을 이용한 에뮬레이터 구현은 Microsoft사의 Windows OS에서 작동하도록 Visual Studio C++을 이용하여 Win32 모듈로 작성한다.The emulator implementation using the executable program according to the present invention is written in Win32 module using Visual Studio C ++ so that it operates in the Windows OS of Microsoft Corporation.

내부 모듈은 AVR 실행 이미지 로딩부(ISP)와 연관 GUI 부분 분석 설계, AVR Core 실행 유닛과 메모리, I/O 유닛의 시뮬레이션 모듈 분석 설계, AVR Core 시뮬레이션 모듈과 실시간 결과를 표시하는 GUI 연계 부분 설계로 나누어 분석 설계 한다.
The internal module is related to the AVR Execution Image Loading Unit (ISP), GUI part analysis design, AVR Core execution unit, memory, I / O unit simulation module analysis design, AVR Core simulation module and GUI related part design to display real time results. Analysis and design.

<실시예3>&Lt; Example 3 >

본 발명의 일실시예에 따라 다양한 가상화 모듈을 근간으로 시뮬레이터 구현 가능하도록 한다.The simulator can be implemented based on various virtualization modules according to an embodiment of the present invention.

예를 들어 본 발명은 에이브이알 소프트웨어 시스템을 통한 시뮬레이션 구현까지의 시간을 최소화하기 위하여 오픈 소스를 최대한 활용한다.For example, the present invention makes full use of open source in order to minimize the time to implementation of simulation through AV software system.

AVR 실행 이미지 로딩부는 개발 환경 프로그램인 WinAvr의 바이너리 이미지 포맷을 분석한 후 이를 토대로 ISP 시뮬레이션 모듈을 구현한다. The AVR Execution Image Loading Unit analyzes the binary image format of WinAvr, the development environment program, and implements the ISP simulation module based on this analysis.

즉 CPU Core시뮬레이션 모듈은 GNU의 오픈 소스를 최대한 활용한다. In other words, the CPU Core Simulation Module makes full use of GNU open source.

AVR 내부 Instruction이나 타이머 인터럽트 연동부들은 Amtel사의 표준 스펙을 따라서 구현하며, 이에 따른 CPU 모듈간의 연관관계를 설정한다.The AVR internal instruction or timer interrupt interlocks are implemented according to the standard specification of Amtel, and the association between the CPU modules is set accordingly.

또한 본 발명에 따라 실행 과정의 실시간 출력을 담당하는 Windows UI부분은 각 모듈별 특성에 따라 시뮬레이션 방법을 정하고 이에 따른 구현을 위한 설계를 진행 한다.In addition, according to the present invention, the Windows UI part responsible for the real-time output of the execution process sets the simulation method according to the characteristics of each module, and designs for the implementation are performed accordingly.

이러한 Windows UI 대상 모듈은 각각 LED표시 모듈, 7 Segment, ADC 모듈, KeyPad, 또는 LCD 등을 사용할 수 있다.
These Windows UI target modules can use LED display module, 7 segment, ADC module, KeyPad, or LCD, respectively.

이상에서 설명된 본 발명의 에이브이알 소프트웨어 시스템의 실시예는 예시적인 것에 불과하며, 본 발명이 속한 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 잘 알 수 있을 것이다. It should be noted that the embodiments of the Able al software system of the present invention described above are merely illustrative and that those skilled in the art will appreciate that various modifications and equivalent embodiments can be made without departing from the scope of the present invention. You will know.

그러므로 본 발명은 상기의 상세한 설명에서 언급되는 형태로만 한정되는 것은 아님을 잘 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 또한, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 그 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
Therefore, it is to be understood that the present invention is not limited to the above-described embodiments. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims. It is also to be understood that the invention includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

11 : ISP 로딩부
12 : Flash 메모리
13 : Main 메모리
14 : CPU Core
15 : 타이머
16 : IPC
17 : 인터럽트 모듈
18 : UI 모듈
11: ISP loading section
12: Flash memory
13: Main memory
14: CPU Core
15: Timer
16: IPC
17: Interrupt module
18: UI module

Claims (7)

ISP 로딩부가 Flash 메모리로 실행 프로그램을 전송하는 단계;
CPU Core가 상기 Flash 메모리로부터 상기 실행 프로그램을 Main 메모리를 통해 전달받아 실행하는 단계;
UI(user interface)모듈이 상기 CPU Core로부터 상기 실행 프로그램의 실행 결과를 IPC(interprocessor communication)를 통해 전달받아 상기 UI 모듈이 GDI(graphics device interface) 영역을 double buffering 하고, 중복 표시를 막기 위하여 표시 영역에 대한 리젼(region)을 무효화(Invalidate)시킨 후 이벤트(Event)가 없는 아이들(Idle) 시점에 모아서 표시하는 단계; 및
트레이닝 키트가 상기 실행 프로그램의 실행 완료 결과를 로딩하는 단계;
를 포함하여 구성되는 것을 특징으로 하는 에이브이알 소프트웨어 시스템 제어 방법.
Transmitting an execution program to the flash memory by the ISP loading unit;
The CPU core receiving and executing the execution program from the flash memory through the main memory;
A UI (user interface) module receives the execution result of the execution program from the CPU Core through an interprocessor communication (IPC), double buffering a graphics device interface (GDI) area of the UI module, Collecting and displaying an idle region in which there is no event after displaying an invalid region of the region; And
Loading the execution completion result of the execution program;
And a control unit configured to control the operation of the AV software system.
제1항에 있어서,
상기 CPU Core가 상기 Flash 메모리로부터 상기 실행 프로그램을 Main 메모리를 통해 전달받아 실행하는 단계는,
상기 CPU Core가 Timer 및 Interrupt를 ADC 변환기 또는 시계 Sample 프로그램으로 검증하거나, Windows UI 및 각각의 출력 모듈은 테스트 Sample 프로그램으로 검증 하는 단계;를 포함하여 구성되는 것을 특징으로 하는 에이브이알 소프트웨어 시스템 제어 방법.
The method according to claim 1,
Wherein the CPU core receives the execution program from the flash memory via the main memory and executes the execution program,
Wherein the CPU core verifies the timer and the interrupt with an ADC converter or a clock sample program, and verifies the Windows UI and each output module with a test sample program.
삭제delete 제1항에 있어서,
상기 UI(user interface)모듈이 상기 CPU Core로부터 상기 실행 프로그램의 실행 결과를 IPC(interprocessor communication)를 통해 전달받아 출력하는 단계는,
상기 CPU core 에서 외부 입력에 따른 CPU 내부 인터럽트 처리 및 IPC를 통한 자체 인터럽트 처리를 위해 상기 Flash 메모리와 상기 Main 메모리를 Trigger시킨 후 Polling으로 검사하는 단계;를 포함하여 구성되는 것을 특징으로 하는 에이브이알 소프트웨어 시스템 제어 방법.

The method according to claim 1,
Wherein the UI (user interface) module receives and outputs the execution result of the execution program from the CPU core through an IPC (interprocessor communication)
And checking the polling by triggering the flash memory and the main memory for the CPU internal interrupt processing and the self interrupt processing through the IPC in the CPU core. System control method.

제1항에 있어서,
상기 CPU core는 상기 Main 메모리를 Runtime 메모리로 구성시키는 것을 특징으로 하는 에이브이알 소프트웨어 시스템 제어 방법.
The method according to claim 1,
And the CPU core configures the main memory as a runtime memory.
제1항에 있어서,
상기 IPC를 통하여 상기 Main 메모리와 IO 포트를 Mapping하고, 이를 Shadowing 하여 UI 모듈로 전달하는 것을 특징으로 하는 에이브이알 소프트웨어 시스템 제어 방법.
The method according to claim 1,
Mapping the main memory and the IO port through the IPC, and shadowing the main memory and the IO port, and transferring the shadowed data to the UI module.
실행 프로그램을 입력받아 Flash 메모리에 전송하는 ISP 로딩부;
상기 Flash 메모리에서 실행 프로그램을 Main 메모리를 통해 전달받아 실행하는 CPU Core;
상기 실행 프로그램의 실행 결과를 상기 CPU Core로부터 IPC(interprocessor communication)를 통해 전달받아 출력하되, GDI(graphics device interface) 영역을 double buffering 하고, 중복 표시를 막기 위하여 표시 영역에 대한 리젼(region)을 무효화(Invalidate)시킨 후 이벤트(Event)가 없는 아이들(Idle) 시점에 모아서 표시하는 UI(user interface)모듈; 및
상기 CPU Core에서 실행한 상기 실행 프로그램을 로딩하여 최종 실행하는 트레이닝 키트;
를 포함하는 것을 특징으로 하는 에이브이알 소프트웨어 시스템.
An ISP loading unit for receiving an execution program and transmitting the same to a flash memory;
A CPU Core receiving and executing an execution program from the Flash memory through the main memory;
Receives the execution result of the execution program from the CPU Core through an interprocessor communication (IPC), double buffering a graphics device interface (GDI) area, and invalidates a region for the display area to prevent duplicate display A UI (user interface) module for collecting and displaying the event at the time of idle without an event after invalidating the event; And
A training kit for loading and executing the execution program executed by the CPU Core;
&Lt; / RTI &gt;
KR1020140068664A 2014-06-05 2014-06-05 AVR software system and the method of control KR101654194B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140068664A KR101654194B1 (en) 2014-06-05 2014-06-05 AVR software system and the method of control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140068664A KR101654194B1 (en) 2014-06-05 2014-06-05 AVR software system and the method of control

Publications (2)

Publication Number Publication Date
KR20150140178A KR20150140178A (en) 2015-12-15
KR101654194B1 true KR101654194B1 (en) 2016-09-05

Family

ID=55021224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140068664A KR101654194B1 (en) 2014-06-05 2014-06-05 AVR software system and the method of control

Country Status (1)

Country Link
KR (1) KR101654194B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594263B1 (en) * 2003-03-10 2006-06-30 삼성전자주식회사 Methods, circuits, and data structures for programming electronic device and operational control circuit of the electronic device
KR100872893B1 (en) * 2008-02-04 2008-12-10 장정우 The actual training kit for exercising micro controler unit

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110130169A (en) * 2010-05-27 2011-12-05 한국항공우주산업 주식회사 System for changing an operation between a verified processing apparatus and a test processing apparatus through an interrupt communication part, method of changing the operation and recording medium implementing the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100594263B1 (en) * 2003-03-10 2006-06-30 삼성전자주식회사 Methods, circuits, and data structures for programming electronic device and operational control circuit of the electronic device
KR100872893B1 (en) * 2008-02-04 2008-12-10 장정우 The actual training kit for exercising micro controler unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yao Li, 'Teaching embedded systems using a modular-approach microcontroller training kit.' World Transactions on Engineering and Technology Education, Vol.6, No.1, 2007, pp.136-138.

Also Published As

Publication number Publication date
KR20150140178A (en) 2015-12-15

Similar Documents

Publication Publication Date Title
Hamblen et al. An embedded systems laboratory to support rapid prototyping of robotics and the internet of things
Brown Discovering the STM32 microcontroller
CN104699523B (en) For the adjustment method and system of the application program that hardware platform is developed
CN204086979U (en) A kind of electric vehicle motor controller hardware-in―the-loop test system
US20150339214A1 (en) Non-intrusive software verification
CN113157508B (en) Test method, system, device, equipment and storage medium of embedded system
US9823996B2 (en) Debugging code for controlling intelligent devices using log data from executed object code
CN105513472A (en) Multicore single-chip microcomputer embedded teaching experiment platform
KR20160093794A (en) Robot programing kit using card key and board having resistor and magnet and method thereof
Ma et al. Low cost AVR microcontroller development kit for undergraduate laboratory and take-home pedagogies
KR101654194B1 (en) AVR software system and the method of control
US9798649B1 (en) Debugging code controlling resource-constrained intelligent devices contemporaneously with executing object code
TW201842446A (en) Testing devices, non-transient computer-readable medium and methods for testing a device driver software
Hamblen et al. Introducing embedded systems in the first C/C++ programming class
Ribas-Xirgo Yet another simple processor (YASP) for introductory courses on computer architecture
TWI660267B (en) Boot testing apparatus, system and method thereof
CN113093622B (en) Interconnection formula simulation training emulation machine
CN102799407A (en) Method and device for carrying out displaying based on baseboard management controller
Perez et al. Development of an eclipse plug-in for using the lego mindstorms ev3 in education
Fischer et al. VISIR-Microcontroller extensions
Otero et al. MiniOS: an instructional platform for teaching operating systems labs
Brejcha et al. New approaches for a distance learning course about embedded systems
Alaswad et al. Towards an Embedded Systems Curricula for the next-generation workforce
CN109483552B (en) Method and equipment for debugging software and hardware of substrate carrying robot system
Montañez et al. Microcontrollers in education: Embedded control–everywhere and everyday

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant