WO2020071639A1 - 프로그램 개발 시스템 및 이를 이용한 개발 방법 - Google Patents

프로그램 개발 시스템 및 이를 이용한 개발 방법

Info

Publication number
WO2020071639A1
WO2020071639A1 PCT/KR2019/010887 KR2019010887W WO2020071639A1 WO 2020071639 A1 WO2020071639 A1 WO 2020071639A1 KR 2019010887 W KR2019010887 W KR 2019010887W WO 2020071639 A1 WO2020071639 A1 WO 2020071639A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
code
pin
main board
microcontroller
Prior art date
Application number
PCT/KR2019/010887
Other languages
English (en)
French (fr)
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 주식회사 엔터핀
Publication of WO2020071639A1 publication Critical patent/WO2020071639A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25123Change controller pin configuration

Definitions

  • the present invention relates to a program development system and a development method using the same, and more particularly, to a system requiring control, a program development system for developing a program that performs a specific function for control, and a development method using the same .
  • the present invention is to solve the above-mentioned problems, and for the purpose of automating the configuration between the module component and the main board by simply databasening the module code for the module component in the hardware device development stage and simply assigning pins through the user interface. do.
  • a program development system for driving a hardware device including a main board equipped with a microcontroller and one or more module components electrically connected to the main board according to an embodiment of the present invention includes a user interface for the module components.
  • Module selection unit to select through;
  • a module setting unit for inputting hardware configuration for the module component selected by the module selection unit through the user interface;
  • a library unit that stores module codes related to the module parts;
  • a code generator that generates driving codes for driving the hardware device.
  • the code generation unit may automatically generate the driving code using the module code stored in the library unit, and automatically reflect the hardware environment settings input from the module setting unit to the driving code.
  • the hardware configuration may include assigning each pin of the selected module component to each pin of the main board or the microcontroller.
  • the program development system when the pin of the main board or the microcontroller assigned to the pin of the selected module component is changed, the program development system that changes the module code according to the changed pin assignment.
  • the module setting unit may allow only the pins of the main board or the microcontroller to be assigned to the pins of the selected module component.
  • the hardware environment setting may include assigning an input / output portion of the module component to the input / output portion of the microcontroller.
  • the module code may be automatically generated when the hardware configuration is completed in the module setting unit.
  • the module selector may allow only module parts compatible with the type of the main board to be selected.
  • main board or the microcontroller may further include a code conversion unit for changing the written driving code to a code compatible with the mainboard or the microcontroller.
  • the library unit may store the module code in an external server connected through a network.
  • the program development system may include a status display unit that graphically indicates a connection state between the module component and the main board connected to the main board.
  • the hardware environment setting includes assigning each pin of the selected module component to each pin of the main board or the microcontroller, and the module setting unit includes each pin of the module component to the main board or the An alarm can be provided when a duplicate is assigned to each pin of the microcontroller.
  • the alarm may occur when a pin of the main board or the microcontroller is selected for a pin of the selected module component.
  • the alarm may be displayed at the location of a pin allocated in the status display unit.
  • the program development system may include a hardware diagnostic unit that uploads a pre-written diagnostic program to the hardware to diagnose a connection state of the hardware device.
  • a program development system for driving a hardware device including a main board equipped with a microcontroller and one or more module parts electrically connected to the main board selects the module parts A module selector; A module setting unit configured to set each pin of the module component selected in the module selection unit to each pin of the microcontroller or the main board through a user interface; And a driving code for driving the hardware device including the module component selected by the module selection unit, but generating the driving code using information of each pin of the module component set in the module setting unit. It may include a code generator.
  • each pin of the module component and each pin of the microcontroller or the main board is a program development system that is a pin related to input and output.
  • a program development method using a program development system for driving a hardware device including a main board equipped with a microcontroller and at least one module component electrically connected to the main board according to an embodiment of the present invention, A module selection step of selecting the module component; A module setting step of inputting hardware configuration for the module component selected in the module selection step through a user interface; And a code generation step of generating a drive code for driving the hardware device, wherein the code generation step automatically generates the drive code using the pre-made module code associated with the module component, and the module.
  • the hardware environment setting input in the setting step may be automatically reflected in the driving code.
  • the hardware configuration may include assigning each pin of the selected module component to each pin of the main board or the microcontroller.
  • the module setting step may provide an alarm when each pin of the module component is repeatedly allocated to each pin of the main board or the microcontroller.
  • a hardware diagnostic step of uploading a pre-written diagnostic program to the hardware device to diagnose the connection state of the hardware device may be included.
  • a computer-readable recording medium recording a program for executing the method of the present invention may be provided.
  • the hardware development system and the development method using the same can database module codes for module parts at the stage of hardware device development and automate the setting operation between the module parts and the main board by simply assigning pins through a user interface. .
  • FIG. 1 is a block diagram showing a schematic configuration of a program development system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a schematic configuration of a hardware device according to an embodiment of the present invention.
  • FIG 3 is a view showing that the module selection unit according to an embodiment of the present invention selects a module component through a user interface.
  • FIG. 4 is a view showing that a module setting unit according to an embodiment of the present invention configures hardware environment through a user interface.
  • FIG. 5 is a view showing a driving code according to an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating a driving code in which a driving code generated by the code generating unit 140 according to an embodiment of the present invention is inserted.
  • FIG. 7 is a view showing a change in the driving code according to the hardware environment setting change.
  • FIG. 8 is a diagram illustrating a module code connected to the generated driving code of FIG. 6 according to an embodiment of the present invention.
  • FIG. 9 is a block diagram of a program development system further including a code conversion unit according to an embodiment of the present invention.
  • FIG. 10 is a block diagram of a networked program development system according to an embodiment of the present invention.
  • FIG. 11 is a block diagram of a program development system including a status display unit according to an embodiment of the present invention.
  • FIG. 12 is a diagram illustrating a graphic displayed by the status display unit according to an embodiment of the present invention.
  • FIG. 13 is a view showing an alarm of a pin allocated in a hardware configuration process according to an embodiment of the present invention.
  • FIG. 14 is a block diagram of a program development system including a hardware diagnostic unit according to an embodiment of the present invention.
  • 15 is a flowchart illustrating a program development method according to an embodiment of the present invention.
  • 16 is a flowchart illustrating a program development method including a hardware diagnostic step according to an embodiment of the present invention.
  • 17 is a flowchart of a program development method including a step of detecting duplicate allocation of a pin according to an embodiment of the present invention.
  • each component shown in the embodiments of the present invention are shown independently to indicate different characteristic functions, and do not mean that each component is composed of separate hardware or one software component. That is, for convenience of description, each component is listed as each component, and at least two components of each component may be combined to form one component, or one component may be divided into a plurality of components to perform a function.
  • the integrated and separated embodiments of each of these components are also included in the scope of the present invention without departing from the essence of the present invention.
  • FIG. 1 is a block diagram showing a schematic configuration of a program development system according to an embodiment of the present invention
  • FIG. 2 is a block diagram showing a schematic configuration of a hardware device according to an embodiment of the present invention.
  • the program development system 100 is a main board 10 equipped with a microcontroller 11 and one electrically connected to the main board 10 It is a system for driving the hardware device 1 including the above module parts (M1, M2, ..., Mn).
  • the program development system 100 includes a module selection unit 110 for selecting module components M1, M2, ..., Mn, and module components M1, M2, ..., Mn selected by the module selection unit 110. ),
  • the module setting unit 120 for inputting hardware environment settings through a user interface, a library unit 130 for storing module codes related to module parts M1, M2, ..., Mn and a hardware device 1 ) May include a code generator 140 that generates a driving code for driving).
  • the code generation unit 140 automatically generates the driving code using the module code stored in the library unit 130, and automatically sets the hardware environment input from the module setting unit 120 to the driving code. Can be reflected.
  • the hardware device 1 is electrically connected to one or more module parts (M1, M2, ..., Mn) to the main board 10 on which the microcontroller 11 is mounted. , It may be a device capable of performing a specific function.
  • the hardware device 1 can perform only a specific function or a specific task designed with a driving program or a control program installed without a separate operating system.
  • the functions performed by the hardware device 1 may vary depending on the functions of the module parts M1, M2, ..., Mn electrically connected to the main board 10.
  • the hardware device 1 is a simple electronic clock, an electronic balance, a device using an ultrasonic sensor, a device using an illuminance sensor, a device using a motor, a device using a proximity sensor, and an electronic calculator capable of alarming according to the installation time.
  • High-level devices such as smartphones, smart TVs, and medical devices can be included from the device.
  • a low-performance microcontroller 11 and a low-capacity memory may be mounted on the main board 10.
  • the high-level device is equipped with a relatively high-performance microcontroller 11 and a high-capacity memory to perform various functions, and an operating system may be mounted.
  • One or more module components M1, M2, ..., Mn may be connected to the main board 10.
  • the connection of the module components of the main board 10 means that signals or power can be transmitted and received electrically, and may include physically connected and physically disconnected components.
  • the main board 10 and some module components are wirelessly connected to transmit and receive signals, it can be said that the main board 10 and some module components are connected.
  • the module parts M1, M2, ..., Mn may be parts that are additionally connected to the hardware device 1 to perform specific functions.
  • the hardware device 1 may include at least one module component (M1, M2, ..., Mn).
  • the module parts (M1, M2, ..., Mn) are manufactured to perform one function, but may be manufactured to perform one or more functions.
  • the module parts (M1, M2, ..., Mn) are connected to the main board 10 and can operate through a control signal of the microcontroller 11 mounted on the main board 10.
  • the module components (M1, M2, ..., Mn) may send the operation result according to the control signal of the microcontroller 11 back to the main board 10 or the microcontroller 11.
  • module parts include communication modules, sensor modules, audio output modules, data conversion modules, auxiliary memory modules, sensor modules with various functions, rectifier elements, motors, display modules, antennas, etc. Can be included.
  • Programs or software for driving the hardware device 1 may be divided into a driving code and a module code.
  • the driving code may be a main code that can directly control the hardware device 1
  • the module code may be an auxiliary code that is dependent on the main code in the driving code.
  • the unique function of a module component that senses ambient temperature is designed by hardware or software implemented by a manufacturer that manufactures the module component.
  • the manufacturer provides input / output signal information for the corresponding module component to the purchaser as a data sheet.
  • the function of the main board 10 equipped with the microcontroller 11 may also be implemented as the module parts.
  • the microcontroller 11 mounted on the main board 10 and the input / output signal information related to the other components and command information for controlling the microcontroller 11, such as the module parts, are sent to the purchaser as a data sheet, literature, or file. to provide.
  • Developers can look at these datasheets and write code to use each module component connected to the motherboard 10.
  • the developer can write code that controls and operates the hardware device 1 according to an algorithm designed and intended by the developer.
  • the code that controls and operates the hardware device 1 may be referred to as a driving code.
  • code such as a function or variable that is repeatedly used for one module component may be included.
  • code such as a function or variable that is repeatedly used for any one module component is separately generated in another code file, when necessary for the driving code, it can be used in dependence by connecting with the driving code.
  • the code written in advance for any one of these module parts can be referred to as a module code.
  • the module code may also include information about the module component.
  • the module component information may include a module component category, model, manufacturer, function, number of pins, and pin shape (input pin or output pin). These module codes may be stored in the library unit 130 corresponding to each module component.
  • FIG 3 is a view showing that the module selection unit according to an embodiment of the present invention selects a module component through a user interface.
  • the module selection unit 110 may select module components M1 and M2 to be connected to the main board 10 through the user interface I100.
  • the module parts M1, M2, ..., Mn appearing in the user interface I100 are registered module parts.
  • the module parts M1, M2, ..., Mn registered in the program development system 100 can all appear on the user interface I100 and can be selected.
  • the module component registered here refers to a module component in which the module code of the module component is stored in the library unit 130 and the module code of the module component can be used in the driving code.
  • the module selector 110 when the module selector 110 receives the module parts M1, M2, ..., Mn through the user interface I100, the module parts M1 and M2 appearing in the user interface I100 , ..., Mn) may appear only module parts compatible with the main board 10.
  • the module parts registered in the program development system 100 are M1 to M10, only the module parts M1, M3, and M10 compatible with the main board 10 may appear on the user interface I100.
  • the main board 10 is replaced with another main board, only compatible M2, M4, and M6 may appear on the replaced main board.
  • module parts (M1, M2, ..., Mn) registered in the program development system 100 appear, but module parts (M1, M2, ..., Mn) compatible with the main board 10 Can only be selected.
  • M1 to M10 are all displayed on the user interface I100, and M1 and M3 compatible with the main board 10 are shown.
  • Only M10 can be selected.
  • selectable module parts may be changed. For example, it can be changed to select only M2, M4, and M6 compatible with the replaced motherboard.
  • the type of module parts required to obtain the intended function of the developer is investigated, and each data sheet is checked to see if the module parts (M1, M2, ..., Mn) to be connected with the main board 10 to be used are compatible with each other.
  • the program development system 100 according to the present invention can easily check whether it is compatible with the main board 10 for the registered module parts (M1, M2, ..., Mn), or select only compatible module parts Can reduce the mentioned temporal cost.
  • FIG. 4 is a view showing that a module setting unit according to an embodiment of the present invention configures hardware environment through a user interface.
  • Hardware configuration for a selected module component may be performed through a user interface I100.
  • Hardware configuration may be to assign each pin of the selected module component (M1, M2, ..., Mn) to each pin of the main board 10 or microcontroller (11).
  • the pin may mean a physical contact point that can transmit and receive signals, data, or power.
  • the main board 10 and module components M1, M2, ..., Mn have pins for transmitting and receiving signals according to respective hardware designs. Developers connect the module parts (M1, M2, ..., Mn) pins to the main board 10 pins according to their intentions, and the main board 10 and module parts (M1, M2, ..., Mn) Create a signal path for the liver. Conventionally, it is common for developers to write and allocate code by themselves. In this case, the developer checks the data sheet of the main board 10 and the module part data sheet to be connected to the main board 10 and writes code. Check how many module component pins to connect to the motherboard 10, whether the pins are analog input pins or output pins, or digital input pins or output pins. As such, the time cost of consuming one module component has to increase as the number of module components to be connected to the main board 10 increases.
  • a pin of the main board 10 corresponding to each pin of the module component may be allocated using a user interface.
  • the hardware environment setting through the user interface I100 may be reflected in the driving code generated by the code generator 140 of FIG. 1.
  • the hardware environment setting may include assigning the input / output portions of the module components M1, M2, ..., Mn to the input / output portions of the microcontroller 11.
  • the microcontroller 11 is mounted on the main board 10, and the module parts M1, M2, ..., Mn pins are generally connected to the main board 10 pins. In rare cases, the module component (M1, M2, ..., Mn) pin and the microcontroller 11 pin are directly connected.
  • the program development system of the present invention also includes allocating the microcontroller 11 input / output units to the input / output units of the module parts (M1, M2, ..., Mn), thereby improving efficiency in various development cases.
  • the user interface I100 may include an area I110 for pin assignment and an area I120 showing detailed information of the selected module component M1.
  • the area I110 in which pin assignment is possible may include an interface I111 for designating a main board pin corresponding to each pin of the module component.
  • the region I120 showing detailed information of the selected module component M1 may include information including a category, model, manufacturer, function or place of purchase for the selected module component M1. Meanwhile, when a region I120 showing detailed information is clicked through a mouse or the like, a more detailed data sheet for the corresponding module component M1 may be provided by linking.
  • the module setting unit 120 may allow only the pins of the main board 10 or the microcontroller 11 to be assigned to the pins of the selected module component M1.
  • the 'Row1' pin is allocated as shown in FIG. 4, since the 'Row1' is a digital output pin, only the digital input pin is selected as the pin of the main board 10 or the microcontroller 11. VCC, GND or analog pins are not selected.
  • the present invention can significantly reduce such a possibility.
  • the number of total pins of the main board 10 is greater than the total number of pins of one module part (M1, M2, ..., Mn), so the selected module parts (M1, M2, ..., Mn) ) May be performed by allocating one of the total pins of the main board 10 for one pin.
  • the driving code 200 shown in FIG. 5 is an initial driving code 210 in which only the type of the main board 10 is selected in the program development system 100 and module modules M1, M2, ..., Mn are not connected. to be.
  • FIG. 6 is a diagram illustrating a driving code in which a driving code generated by the code generating unit 140 according to an embodiment of the present invention is inserted.
  • the driving code 200 of FIG. 6 is the driving code 200 into which the initial driving code 210 and the driving code 220 generated by the code generating unit 140 are inserted.
  • the code generation unit 140 may generate the driving code 220 reflecting the hardware environment settings input from the module setting unit 120. 4 and 6, for the pins of Row1, Row2, Row3, Row4, Col1, Col2, Col3 of the keypad module (Keypad_4x30), 5, 4, 3, 2, 8, respectively, of the main board 10 It can be seen that the hardware configuration to which pins 7 and 6 are assigned is reflected in the generated driving code 220.
  • the generated driving code 220 may also include code that enables a predefined function related to the selected module component (Keypad_4x30 in FIGS. 4 and 6).
  • the generated driving codes 220 of FIG. 6 '#include ⁇ Keypad_4x3.h>' is a driving code 200 and a module so that a function defined in a module code related to a keypad module component can be used in the driving code 200 This is the code that connects the code.
  • the code generator 140 generates a code that connects the module code to the drive code 200 to connect the drive code 200 and the module code, and can easily use the functions defined in the module code within the drive code 200 I can do it.
  • the generation of the driving code 220 of the code generating unit 140 may be automatically performed when the hardware configuration is completed in the module setting unit 120.
  • the driving code 220 reflecting the hardware environment setting is automatically generated, so the developer can immediately check the generated driving code 220 and check the functions included in the module code. Can be used immediately.
  • the driving code 220 generated by the code generating unit 140 shown in FIG. 6 is not limited to the illustrated code, but can be modified to match the characteristics of the module parts M1, M2, ..., Mn. And can be added. In addition, it may be generated by being included in the initial driving code 210.
  • FIG. 7 is a view showing a change in the driving code according to the hardware environment setting change.
  • the program development system 100 may change the driving code 220 in which the changed contents are generated. More specifically, the pin assignment according to the hardware configuration shown in FIG. 4 is 5 of the main board 10 for each of the Row1, Row2, Row3, Row4, Col1, Col2, Col3 pins of the keypad module (Keypad_4x30). , 4, 3, 2, 8, 7, 6. Accordingly, it can be seen that the driving code 220 generated in FIG. 6 is also assigned to 5, 4, 3, 2, 8, 7, 6 pins. At this time, as shown in FIG.
  • the code generation unit 140 May change or modify the already generated driving code 220 according to the changed pin assignment, such as the modified driving code 221 of FIG. 7.
  • the developer repeats design and programming for a number of module parts.
  • data sheets are compared each time, and hardware setup and code writing are also repeated, which is very inefficient and time consuming.
  • the present invention is not just generating codes, but information about different module parts (M1, M2, ..., Mn) according to the type of the main board 10, basic hardware settings, and frequently used codes.
  • the code is stored in the library unit 130, and the developer can simply set the hardware environment using the user interface.
  • the hardware configuration is automatically reflected in the driving code, so the developer can easily use the functions for the module parts, saving the modification time resource due to module replacement.
  • FIG. 8 is a diagram illustrating a module code connected to the generated driving code of FIG. 6 according to an embodiment of the present invention.
  • the module code 300 may be code that has been previously prepared so that the code (variable, function, or data type definition and declaration) for controlling the module component to be connected can be easily used in the driving code.
  • the module code connected to '#include ⁇ keypad_4x3.h>' among the driving codes 220 generated by the code generating unit 140 shown in FIG. 6 is illustrated in FIG. 8.
  • a class of Keypad_4x3 can be used, and the 'getKey ()' function 310 defined in the module code 300 is used in the driving code 200 It can be used immediately.
  • another module code 320 may be continuously connected in the module code 300. Due to another module code 320 that is dependently connected within the module code, it is possible to use all functions for controlling the corresponding module component with only the driving code 220 generated by simple hardware configuration.
  • the module code 300 can reduce resource waste by preventing a developer from separately writing the module component to use each module component.
  • the module code is not limited to the code shown in FIG. 8, and various other codes may also be included as the module code.
  • the module component information may be stored in the form of JSON (JavaScript Object notation), and the module component information may be displayed in hardware configuration. Therefore, the module code has a broader meaning than the area of modular programming used in the programming area, and may include any file or code that allows module parts to be used and used in the main board 10.
  • FIG. 9 is a block diagram of a program development system further including a code conversion unit according to an embodiment of the present invention.
  • the code conversion unit for changing the written driving code 200 to a code compatible with the main board 10 or the microcontroller 11 It may further include (150).
  • the code conversion unit 150 is a module code suitable for the changed mainboard 10 or the microcontroller 11 for the module code connected to the driving code 200 Can be changed.
  • the code conversion unit 150 may change the module code written with the code suitable for Atmega128 to the module code suitable for ARM M0.
  • the code generator 140 may modify the generated module code 200 so that the changed module code can be used in the driving code 200. For example, for module component input / output pins using the Atmega128 input / output pins, it is possible to select and automatically assign the input / output pins of the appropriate ARM M0 to each.
  • the number of input / output pins is smaller than that of the existing microcontroller 11, or a function that is present in the existing microcontroller 11 or a function that is not present in the changed microcontroller, for example, if there is no analog digital converter pin, the microcontroller to be changed is Since it is not suitable, an alarm can be provided to the user.
  • the previously generated driving code 220 is generated to use a module code set according to the selected main board 10. Therefore, if the developer changes the main board 10 during development, the existing driving code 200 cannot be used. In this case, the development had to be restarted from the beginning. However, since the code conversion unit 150 is changed to a module code suitable for the changed main board 10 or microcontroller 11, the developer can continue to progress the hardware device 1 development project in progress.
  • FIG. 10 is a block diagram of a networked program development system according to an embodiment of the present invention.
  • the library unit 130 may store module codes in an external server 400 connected through a network.
  • the library unit 130 may load module codes stored in the external server 400 through a network.
  • the required module parts (M1, M2, ..., Mn) can be registered in the program development system 100 by loading the module code stored in.
  • the network-connected external server 400 does not need to provide a vast amount of data of module codes for the module parts (M1, M2, ..., Mn) in the local program development system, and the necessary module parts (M1, M2, ..., only the data of Mn) can be loaded, so the optimization of the program development system 100 may be possible.
  • FIG. 11 is a block diagram of a program development system including a status display unit according to an embodiment of the present invention
  • FIG. 12 is a diagram illustrating a graphic displayed by the status display unit according to an embodiment of the present invention.
  • the program development system 100 includes module components (M1, M2, ..., Mn) and a main board 10 connected to the main board 10. It may include a status display unit 160 that can indicate the connection status of the graphic.
  • the graphic 500 represented by the status display unit 160 may include a mainboard graphic 510 and a connected module component graphic 520.
  • the connection state may be a state of the pins of the module parts M1, M2, ..., Mn connected to the main board 10 and pins of the main board 10 assigned to the pins.
  • the connection state includes a state in which pin assignment is completed, a state in which the pins of the main board 10 are duplicated, a state in which the pins of the main board 10 are not assigned, and a state in which pins of the incompatible main board 10 are assigned. can do.
  • the status display unit 160 may display an alarm according to the connection status.
  • the alarm can appear at the location of the module components (M1, M2, ..., Mn) connected to the motherboard 10.
  • Alarms can be displayed or output in a variety of forms.
  • the alarm can be represented by a color badge icon 521.
  • the badge icon 521 may be changed in color or shape according to a connection state, so that a developer can recognize the connection state of the connected module component 520. As illustrated in FIG. 11, a badge icon 521 may appear on the graphic 520 of a connected module part, and the displayed badge icon 521 may be changed depending on the connection state.
  • the state in which the pin assignment is completed is green, and the main board 10 for one or more pins of the pins of the connected module parts is yellow when the pins are allocated in red, and the main board 10 for one or more pins of the pins of the connected module parts. If the pin is not assigned, it may appear gray when a pin incompatible with the pin of the main board 10 is assigned to one or more of the pins of the connected module component.
  • FIG. 13 is a view showing an alarm of a pin allocated in a hardware configuration process according to an embodiment of the present invention.
  • the status display unit 160 of FIG. 11 may display a graphic I130 of the module component when setting the hardware environment for the module component.
  • the alarm may also appear in the graphic I130 of the module component appearing in the hardware configuration process.
  • the alarm I131 may appear at the location of the pin of the module component allocated in duplicate. In this process, it may operate in conjunction with the module setting unit 120.
  • each pin of the module component is allocated to each pin of the main board 10 or the microcontroller 11 so that the developer can recognize the connection state of the pin during the pin assignment process. In this case, an alarm I112 may be provided.
  • the module setting unit 120 assigns the pin An interface can appear at that location to direct pin assignment modification right away.
  • the pins allocated in duplicate may appear in yellow.
  • the developer can move the mouse cursor to the pin marked in yellow, and when the cursor enters the location or when a certain condition is satisfied, an interface for assigning a pin can be displayed as a popup. Developers can graphically check the connection status for pin assignments in real time, and more intuitively recognize and solve problems with connection status. Due to the nature of programming in the form of text, frequent mistakes in assigning duplicate module component pins to the pins of the main board 10 can be reduced or eliminated.
  • the alarm is not limited to being able to appear only with a badge icon, and can be any form that allows the developer to recognize the connection status.
  • FIG. 14 is a block diagram of a program development system including a hardware diagnostic unit according to an embodiment of the present invention.
  • the program development system 100 includes a hardware diagnostic unit 170 that uploads a pre-written diagnostic program to the hardware device 1 to enable connection of a hardware device. It can contain.
  • the hardware diagnostic unit 170 is equipped with a program for testing the completed hardware device 1.
  • the hardware diagnostic unit 170 may upload a test program mounted on the completed hardware device 1 so that the test program drives the hardware device 1.
  • the test program is a program that can check the connection status of one or more module components included in the hardware device 1 and the main board 10 or the microcontroller 11. For example, if the display module and the speaker module are mounted on the hardware device 1, the test program uploaded by the hardware diagnostic unit 170 causes a simple image or text to be output from the display module mounted on the hardware device 1 , It may be a program that outputs sound from the speaker module. When developing the hardware device 1, an error did not appear in debugging, but the hardware device 1 does not normally operate.
  • the hardware diagnosis unit 170 may solve this problem simply and reduce inefficiently wasted time in the development of the hardware device 1.
  • 15 is a flowchart illustrating a program development method according to an embodiment of the present invention.
  • a program development method using a program development system for driving a hardware device including a main board equipped with a microcontroller and one or more module components electrically connected to the main board is a module selection step (S110). ), A module setting step (S120) and a code generation step (S130).
  • the module selection step S110 may be a step of selecting a module component to be connected to the main board.
  • the module setting step (S120) may be a step of inputting hardware configuration for a module component selected in the module selection step (S110) through a user interface.
  • the hardware configuration may be to assign each pin of the selected module component to each pin of the motherboard or microcontroller.
  • an alarm may be provided when each pin of the module component is allocated to each pin of the motherboard or microcontroller.
  • the code generation step S130 may be a step of generating a drive code for driving a hardware device.
  • the code generation step S130 may be a step of automatically generating a driving code using the module component and the pre-made module code, and automatically reflecting the hardware environment settings input in the module setting step S120 to the driving code.
  • 16 is a flowchart illustrating a program development method including a hardware diagnostic step according to an embodiment of the present invention.
  • the hardware diagnostic step (S140) may be a step of uploading a pre-written diagnostic program to the hardware device to diagnose the connection state of the hardware device.
  • 17 is a flowchart of a program development method including a step of detecting duplicate allocation of a pin according to an embodiment of the present invention.
  • a module selection step (S210) of selecting a module component and a module setting step (S220) of allocating a pin of the main board to the selected module component may be included.
  • a step (S230) of detecting whether there are duplicately allocated pins for the pins of the main board allocated to each pin of the module component may be included. If there are no allocated pins among the pins of the allocated main board, the process may proceed to the code generation step (S250). If there is a pin that has been allocated redundantly, a step (S240) of checking whether the pin that has been allocated redundantly is a pin capable of being duplicated or is not possible may be continued.
  • the pin that has been allocated redundantly is a pin related to network communication of the main board, such as CAN-BUS, or a pin such as VCC or GND, it can be assigned with another module, so an alarm is not generated. Instead, the process may proceed to the code generation step S250.
  • the pin that is allocated redundantly is a pin related to data input / output of the microcontroller, it may not be possible to allocate redundantly if another module preempts and uses the corresponding pin. In this case, an alarm may be generated (S241), which generates an alarm that duplicate allocation has occurred through the module setting unit and the status display unit.
  • the process may proceed to the code generation step S250 to generate a driving code.
  • the code generation unit may change the driving code by reflecting the changed pin assignment. Alternatively, you can change the pin assignment by manually modifying the text code.
  • the module setting unit may go through a step of checking the changed code and checking again whether there are no duplicated pins in the changed pin assignment.
  • the step of detecting such a duplicate allocation pin can be detected in a coding step faster than a step in which a developer uploads a program to a hardware device, thereby reducing inefficient time waste. It also speeds development by reducing the need for developers to check and review datasheets, whether or not pins are redundant.
  • various embodiments described herein can be implemented by hardware, middleware, microcode, software, and / or combinations thereof.
  • various embodiments include one or more on-demand semiconductors (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGA) ), Processors, controllers, microcontrollers, microcontrollers, other electronic units designed to perform the functions presented herein, or combinations thereof.
  • ASICs on-demand semiconductors
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGA field programmable gate arrays
  • Processors controllers, microcontrollers, microcontrollers, other electronic units designed to perform the functions presented herein, or combinations thereof.
  • various embodiments may be recorded or encoded in a computer-readable medium including instructions. Instructions stored or encoded on a computer-readable medium may cause a programmable processor or other processor to perform a method, such as when instructions are executed.
  • Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
  • the storage medium may be any available medium that can be accessed by a computer.
  • such a computer-readable medium may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage medium, magnetic disk storage medium or other magnetic storage device or instructions or data accessible by a computer to a desired program code. And any other media that can be used to transport or store in the form of structures.
  • Such hardware, software, firmware, etc. may be implemented within the same device or within separate devices to support various operations and functions described herein. Additionally, the components, units, modules, components, etc. described as “ ⁇ units” in the present invention may be implemented individually together as separate or interoperable logic devices. The depiction of different features for modules, units, etc. is intended to highlight different functional embodiments, and does not necessarily mean that they must be realized by individual hardware or software components. Rather, the functionality associated with one or more modules or units may be performed by individual hardware or software components or incorporated within common or separate hardware or software components.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

프로그램 개발 시스템 및 이를 이용한 개발 방법이 개시된다. 본 발명에 따른 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템은, 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부, 상기 모듈 선택부에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 상기 사용자 인터페이스를 통하여 입력하는 모듈 세팅부, 상기 모듈 부품과 관련된 모듈 코드를 저장하는 라이브러리부 및 상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성부를 포함한다.

Description

프로그램 개발 시스템 및 이를 이용한 개발 방법
본 발명은 프로그램 개발 시스템 및 이를 이용한 개발 방법에 관한 것으로, 보다 구체적으로는 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 프로그램을 개발하기 위한 프로그램 개발 시스템 및 이를 이용한 개발 방법에 관한 것이다.
하드웨어 장치를 개발하는 개발 프로젝트를 진행함에 있어서, 개발자는 개발 의도에 따라 메인보드와 호환이 가능하고, 적절한 성능을 가지면서 생산 단가가 저렴한 모듈 부품을 찾기 위해 노력한다. 개발자는 이를 위해 수많은 모듈 부품을 검색하고, 데이터 시트를 검토하며 적절한 모듈 부품을 찾으려 많은 시간을 소모한다. 또한, 하드웨어 장치 구동을 위한 프로그램을 개발을 위해, 각 모듈 부품에 대한 데이터 시트를 연구하고, 시행착오를 겪는다.
이러한 시간적 비용을 소모하더라도, 개발 프로젝트 도중에 메인보드가 교체되면 교체된 마이크로컨트롤러에 호환이 가능하도록 프로그램 코드를 모두 바꿔야 한다. 프로젝트를 처음부터 다시 시작하는 것과 같다. 이때까지 소모한 자원이 그냥 버려지는 것이다. 이러한 하드웨어 장치 개발 단계에서 비효율적으로 낭비되는 자원을 예방할 필요가 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화 하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정작업을 자동화하는 것을 목적으로 한다.
또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부품의 핀만을 선택 가능하게 하여, 개발 단계에서의 시행착오를 줄일 수 있는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템은, 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 상기 모듈 선택부에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 상기 사용자 인터페이스를 통하여 입력하는 모듈 세팅부; 상기 모듈 부품과 관련된 모듈 코드를 저장하는 라이브러리부; 및 상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성부;를 포함할 수 있다.
여기서, 상기 코드 생성부는, 상기 라이브러리부에 저장된 상기 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 상기 모듈 세팅부에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함할 수 있다.
또한, 프로그램 개발 시스템은, 상기 선택된 모듈 부품의 핀에 할당된 상기 메인보드 또는 상기 마이크로컨트롤러의 핀이 변경되면, 변경된 핀 할당에 따라 상기 모듈 코드를 변경하는 것인 프로그램 개발 시스템.
또한, 상기 모듈 세팅부는, 상기 선택된 모듈 부품의 핀에 할당이 가능한 상기 메인보드 또는 상기 마이크로컨트롤러의 핀만 선택되도록 할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 모듈 부품의 입출력부를 상기 마이크로컨트롤러의 입출력부에 할당하는 것을 포함할 수 있다.
또한, 상기 모듈 코드는 상기 모듈 세팅부에서 상기 하드웨어 환경설정의 완료 시 자동으로 생성될 수 있다.
또한, 상기 모듈 선택부는, 상기 메인보드의 종류와 호환 가능한 모듈 부품만 선택되도록 할 수 있다.
또한, 상기 메인보드 또는 상기 마이크로컨트롤러에 따라, 작성되어 있는 상기 구동 코드를 상기 메인보드 또는 상기 마이크로컨트롤러에 호환되는 코드로 변경하는 코드 변환부를 더 포함할 수 있다.
또한, 상기 라이브러리부는 네트워크로 연결된 외부 서버에 상기 모듈 코드를 저장할 수 있다.
또한, 프로그램 개발 시스템은, 상기 메인보드에 연결된 상기 모듈 부품과 상기 메인보드의 연결 상태를 그래픽 형태로 나타내는 상태 디스플레이부를 포함할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함하고, 상기 모듈 세팅부는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공할 수 있다.
또한, 상기 알람은, 상기 선택된 모듈 부품의 핀에 대해 상기 메인보드 또는 상기 마이크로컨트롤러의 핀을 선택할 때 발생할 수 있다.
또한, 상기 알람은, 상기 상태 디스플레이부에서 중복으로 할당된 핀의 위치에 나타나도록 할 수 있다.
또한, 프로그램 개발 시스템은, 상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어에 업로드하는 하드웨어 진단부;를 포함할 수 있다.
본 발명의 다른 일 실시예에 따른 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템은, 상기 모듈 부품을 선택하는 모듈 선택부; 사용자 인터페이스를 통하여 상기 모듈 선택부에서 선택된 상기 모듈 부품의 각 핀을 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀에 설정하는 모듈 세팅부; 및 상기 모듈 선택부에서 선택된 상기 모듈 부품을 포함하는 상기 하드웨어 장치를 구동하기 위한 구동 코드를 자동으로 생성하되, 상기 모듈 세팅부에서 설정된 상기 모듈 부품의 각 핀의 정보를 이용하여 상기 구동 코드를 생성하는 코드 생성부를 포함할 수 있다.
또한, 상기 모듈 부품의 각 핀과 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀은, 입출력과 관련된 핀인 것인 프로그램 개발 시스템.
한편, 본 발명의 일 실시예를 따른 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템을 이용한 프로그램 개발 방법은, 상기 모듈 부품을 선택하는 모듈 선택 단계; 상기 모듈 선택 단계에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 사용자 인터페이스를 통하여 입력하는 모듈 세팅 단계; 및 상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성 단계;를 포함하고, 상기 코드 생성 단계는, 상기 모듈 부품과 관련한 미리 작성된 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 상기 모듈 세팅 단계에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영할 수 있다.
또한, 상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함할 수 있다.
또한, 상기 모듈 세팅 단계는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공할 수 있다.
또한, 상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어 장치에 업로드하는 하드웨어 진단 단계;를 포함할 수 있다.
이 외에도 본 발명의 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체가 제공될 수 있다.
본 발명에 따른 하드웨어 개발 시스템 및 이를 이용한 개발 방법은 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화 하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정작업을 자동화할 수 있다.
또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부픔의 핀만을 선택가능하게 하여, 개발 단계에서의 시행착오를 줄여 시간 자원의 낭비를 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로그램 개발 시스템의 개략적인 구성을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 하드웨어 장치의 개략적인 구성을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 모듈 선택부가 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 모듈 세팅부가 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 코드 생성부(140)가 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다.
도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 코드 변환부가 더 포함된 프로그램 개발 시스템의 블록도이다.
도 10은 본 발명의 일 실시예에 따른 네트워크로 연결된 프로그램 개발 시스템의 블록도이다.
도 11은 본 발명의 일 실시예에 따른 상태 디스플레이부가 포함된 프로그램 개발 시스템의 블록도이다.
도 12는 본 발명의 일 실시예에 따른 상태 디스플레이부가 나타내는 그래픽을 도시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 하드웨어 환경설정 과정에서 중복 할당된 핀의 알람을 나타낸 도면이다.
도 14은 본 발명의 일 실시예에 따른 하드웨어 진단부가 포함된 프로그램 개발 시스템의 블록도이다.
도 15는 본 발명의 일 실시예에 따른 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 16은 본 발명의 일 실시예에 따른 하드웨어 진단 단계가 포함된 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 17은 본 발명의 일 실시예에 따른 핀의 중복 할당 검출 단계가 포함된 프로그램 개발 방법의 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예가 상세하게 설명된다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명의 실시예를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략되었다.
본 명세서에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도로 사용된 것이 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 명세서에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로서, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해될 수 있다.
또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
또한, 이하의 실시예들은 당 업계에서 평균적인 지식을 가진 자에게 보다 명확하게 설명하기 위해서 제공되는 것으로서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 첨부된 도면을 참조하여, 본 발명에 따른 바람직한 실시예에 대하여 설명한다.
도 1은 본 발명의 일 실시예에 따른 프로그램 개발 시스템의 개략적인 구성을 나타낸 블록도이고, 도 2는 본 발명의 일 실시예에 따른 하드웨어 장치의 개략적인 구성을 나타낸 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 마이크로컨트롤러(11)가 장착된 메인보드(10)와, 메인보드(10)와 전기적으로 연결되는 하나 이상의 모듈 부품(M1, M2, ..., Mn)을 포함하는 하드웨어 장치(1)를 구동하기 위한 시스템이다.
프로그램 개발 시스템(100)은 모듈 부품(M1, M2, ..., Mn)을 선택하는 모듈 선택부(110), 모듈 선택부(110)에서 선택된 모듈 부품(M1, M2, ..., Mn)에 대한 하드웨어 환경설정을 사용자 인터페이스를 통하여 입력하는 모듈 세팅부(120), 모듈 부품(M1, M2, ..., Mn)과 관련된 모듈 코드를 저장하는 라이브러리부(130) 및 하드웨어 장치(1)를 구동하기 위한 구동 코드를 생성하는 코드 생성부(140)를 포함할 수 있다.
여기서, 코드 생성부(140)는 라이브러리부(130)에 저장된 상기 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 모듈 세팅부(120)에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영할 수 있다.
본 발명의 일 실시예에 따른 하드웨어 장치(1)는 마이크로컨트롤러(11)가 장착된 메인보드(10)에 하나 또는 하나 이상의 모듈 부품(M1, M2, ..., Mn)을 전기적으로 연결되어, 특정 기능을 수행할 수 있는 장치일 수 있다. 하드웨어 장치(1)는 별도의 운영체제가 없이 구동 프로그램 또는 제어 프로그램이 탑재되어 설계된 특정기능 또는 특수한 임무만 수행할 수 있다. 하드웨어 장치(1)가 수행하는 기능은 메인보드(10)에 전기적으로 연결되는 모듈 부품(M1, M2, ..., Mn)의 기능에 따라 다양할 수 있다. 예를 들면, 하드웨어 장치(1)는 장착 시각에 따른 알람이 가능한 전자 시계, 전자 저울, 초음파 센서를 이용한 장치, 조도 센서를 이용한 장치, 모터 구동 장치, 근접 센서를 이용한 장치, 전자계산기와 같은 단순 장치로부터 스마트폰, 스마트TV, 의료장비와 같는 고수준 장치가 포함될 수 있다.
단순 장치는 메인보드(10)에 저성능 마이크로컨트롤러(11)와 저용량의 메모리가 탑재될 수 있다. 고수준 장치는 다양한 기능을 수행하기 위해 비교적 높은 성능의 마이크로컨트롤러(11)와 고용량의 메모리를 탑재되고, 운영체제가 탑재될 수 있다.
모듈 부품(M1, M2, ..., Mn)은 메인보드(10)에 하나 이상 연결될 수 있다. 여기서, 메인보드(10) 모듈 부품이 연결된다는 것은 전기적으로 신호 또는 전력을 서로 송수신할 수 있은 것을 말하며, 물리적으로 연결되는 것과 물리적으로 연결되지 않은 것도 포함할 수 있다. 예를 들면, 메인보드(10)와 어떤 모듈 부품이 무선으로 연결되어 신호를 송수신하면 메인보드(10)와 상기 어떤 모듈 부품은 연결된 것이라 할 수 있다.
모듈 부품(M1, M2, ..., Mn)은 하드웨어 장치(1)에 부가적으로 연결되어, 특정한 기능을 수행하는 부품일 수 있다. 하드웨어 장치(1)는 적어도 하나의 모듈 부품(M1, M2, ..., Mn)을 포함할 수 있다. 일반적으로 모듈 부품(M1, M2, ..., Mn)은 하나의 기능을 수행하도록 제작되나 하나 이상의 기능이 수행되도록 제작될 수도 있다. 모듈 부품(M1, M2, ..., Mn)은 메인보드(10)에 연결되어 메인보드(10)에 장착된 마이크로컨트롤러(11)의 제어 신호를 통해 동작할 수 있다. 모듈 부품(M1, M2, ..., Mn)은 마이크로컨트롤러(11)의 제어 신호에 따라 동작한 결과를 다시 메인보드(10) 또는 마이크로컨트롤러(11)로 보낼 수 있다.
이러한 모듈 부품(M1, M2, ..., Mn)은 통신 모듈, 센서 모듈, 오디오 출력 모듈, 데이터 변환 모듈, 보조 기억 모듈, 다양한 기능의 센서 모듈, 정류 소자, 모터, 디스플레이 모듈, 안테나 등이 포함될 수 있다.
하드웨어 장치(1)를 구동하기 위한 프로그램 또는 소프트웨어는 구동 코드 및 모듈 코드로 구분할 수 있다. 여기서 구동 코드는 하드웨어 장치(1)을 직접적으로 제어할 수 있는 주 코드일 수 있으며, 모듈 코드는 구동 코드에 주 코드에 종속적으로 포함된 보조 코드일 수 있다.
예를 들어, 온도 센서와 같이 주변 온도를 센싱하는 모듈 부품의 고유 기능은 해당 모듈 부품을 제조하는 제조사가 하드웨어로 설계하거나 소프트웨어로 구현한다. 그리고 제조사는 해당 모듈 부품에 대한 입출력 신호 정보를 데이터 시트로 구매자에게 제공한다. 마이크로컨트롤러(11)가 장착된 메인보드(10)의 기능도 상기 모듈 부품처럼 구현될 수 있다. 그리고 상기 모듈 부품처럼 메인보드(10)에 장착된 마이크로컨트롤러(11)와 그 외 부품과 관련된 입출력 신호 정보 및 마이크로컨트롤러(11)를 제어할 수 있는 명령어 정보를 데이터 시트, 문헌 또는 파일로 구매자에게 제공한다.
개발자는 이러한 데이터 시트를 보고 메인보드(10)와 연결된 각 모듈 부품을 사용하기 위해 코드를 작성할 수 있다. 개발자는 코드 작성 시, 개발자가 설계하고 의도한 알고리즘에 따라 하드웨어 장치(1)를 제어하고 운용하는 코드를 작성할 수 있다. 이런 하드웨어 장치(1)를 제어하고 운용하는 코드를 구동 코드라 할 수 있다.
그리고 개발자가 구동 코드를 작성할 때, 어느 하나의 모듈 부품에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드가 포함될 수 있다. 이런 어느 하나의 모듈 부품에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드를 다른 코드 파일로 따로 생성하여 구동 코드에 필요할 때, 구동 코드와 연결하여 종속적으로 사용할 수 있다. 이런 어느 하나의 모듈 부품에 대해 미리 작성한 코드를 모듈 코드라 할 수 있다.
또한, 모듈 코드는 해당 모듈 부품에 대한 정보도 포함할 수 있다. 모듈 부품의 정보는 모듈 부품의 카테고리, 모델, 제조사, 기능, 핀의 개수, 핀의 형태(입력 핀 또는 출력 핀) 등을 포함할 수 있다. 이러한 모듈 코드는 각각의 모듈 부품에 대응되어 라이브러리부(130)에 저장될 수 있다.
도 3은 본 발명의 일 실시예에 따른 모듈 선택부가 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 3을 참조하면, 모듈 선택부(110)는 메인보드(10)에 연결할 모듈 부품(M1, M2)을 사용자 인터페이스(I100)를 통해 선택할 수 있다. 사용자 인터페이스(I100)에서 나타나는 모듈 부품(M1, M2, ..., Mn)은 등록된 모듈 부품이다. 프로그램 개발 시스템(100)에 등록된 모듈 부품(M1, M2, ..., Mn)은 모두 사용자 인터페이스(I100)에 나타날 수 있고 선택할 수 있다. 여기서 등록된 모듈 부품은, 해당 모듈 부품의 모듈 코드가 라이브러리부(130)에 저장되어 구동 코드에서 해당 모듈 부품의 모듈 코드를 이용할 수 있는 모듈 부품을 말한다.
다른 실시예로, 모듈 선택부(110)가 사용자 인터페이스(I100)를 통해 모듈 부품(M1, M2, ..., Mn)을 선택 받을 때, 사용자 인터페이스(I100)에 나타나는 모듈 부품(M1, M2, ..., Mn)은 메인보드(10)와 호환 가능한 모듈 부품만 나타날 수 있다. 예를 들면, 프로그램 개발 시스템(100)에 등록된 모듈 부품이 M1 부터 M10이라면, 메인보드(10)와 호환이 가능한 모듈 부품인 M1, M3, M10만 사용자 인터페이스(I100)에 나타날 수 있다. 여기서 메인보드(10)를 다른 메인보드를 교체한다면, 교체된 메인보드에 호환되는 M2, M4, M6만 나타날 수 있다.
또는 프로그램 개발 시스템(100)에 등록된 모든 모듈 부품(M1, M2, ..., Mn)이 나타나되, 메인보드(10)와 호환이 가능한 모듈 부품(M1, M2, ..., Mn)만 선택되도록 할 수 있다. 예를 들면, 위와 같이, 프로그램 개발 시스템(1)에 등록된 모듈 부품이 M1 부터 M10이라면, 사용자 인터페이스(I100)에 M1 부터 M10까지 모두 나타나되, 메인보드(10)와 호환이 가능한 M1, M3, M10만 선택할 수 있다. 여기서 메인보드(10)를 다른 메인보드로 교체한다면, 선택할 수 있는 모듈 부품이 변경될 수 있다. 가령 교체된 메인보드에 호환되는 M2, M4, M6만 선택할 수 있도록 변경될 수 있다.
종래는 개발자가 의도한 기능을 구형하기 위해 필요한 모듈 부품의 종류를 조사하고 사용할 메인보드(10)와 연결할 모듈 부품(M1, M2, ..., Mn)이 서로 호환이 되는지 각각의 데이터 시트를 확인하고, 검토해야할 시간적 비용이 소모되었다. 그러나 본 발명에 따른 프로그램 개발 시스템(100)은 등록된 모듈 부품(M1, M2, ..., Mn)에 대해 메인보드(10)와의 호환성 여부를 손쉽게 확인할 수 있거나, 호환이 가능한 모듈 부품만을 선택할 수 있으므로 언급된 시간적 비용을 줄일 수 있다.
도 4는 본 발명의 일 실시예에 따른 모듈 세팅부가 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.
도 4를 참조하면, 선택한 모듈 부품에 대한 하드웨어 환경설정은 사용자 인터페이스(I100)를 통해 할 수 있다. 하드웨어 환경설정은 선택한 모듈 부품(M1, M2, ..., Mn)의 각 핀을 메인보드(10) 또는 마이크로컨트롤러(11)의 각 핀에 할당하는 것일 수 있다. 여기서 핀은 신호, 데이터 또는 전력을 송수신할 수 있는 물리적인 접점을 의미할 수 있다.
메인보드(10) 및 모듈 부품(M1, M2, ..., Mn)은 각각의 하드웨어 설계에 따라 신호를 송수신하는 핀이 존재한다. 개발자는 자신의 의도에 따라 메인보드(10) 핀에 모듈 부품(M1, M2, ..., Mn) 핀을 연결하여 메인보드(10)와 모듈 부품(M1, M2, ..., Mn)간의 신호 경로를 생성한다. 종래는 이러한 핀 할당은 개발자가 직접 코드를 작성해 할당하는 것이 일반적이다. 이 경우, 개발자는 메인보드(10) 데이터 시트와 메인보드(10)에 연결할 모듈 부품 데이터 시트를 하나하나 확인하며 코드를 작성한다. 메인보드(10)에 연결할 모듈 부품 핀이 몇 개인지, 해당 핀이 아날로그 입력 핀 또는 출력 핀인지, 디지털 입력 핀 또는 출력 핀인지 확인한다. 이렇듯 하나의 모듈 부품에 소모하는 시간적 비용은 메인보드(10)에 연결할 모듈 부품의 수가 많아질수록 늘어날 수밖에 없었다.
그러나 본 발명에서는 사용자 인터페이스를 이용하여 모듈 부품의 각 핀에 대응하는 메인보드(10) 핀을 할당할 수 있다. 사용자 인터페이스(I100)를 통한 하드웨어 환경설정은 도 1의 코드 생성부(140)에 의해 생성되는 구동 코드에 반영될 수 있다.
그리고 하드웨어 환경설정은 모듈 부품(M1, M2, ..., Mn)의 입출력부를 마이크로컨트롤러(11)의 입출력부에 할당하는 것을 포함할 수 있다. 보통은 메인보드(10)에 마이크로컨트롤러(11)가 장착되고 모듈 부품(M1, M2, ..., Mn) 핀은 메인보드(10) 핀과 연결하는 것이 일반적이다. 드물게, 모듈 부품(M1, M2, ..., Mn) 핀과 마이크로컨트롤러(11) 핀을 직접 연결하는 경우도 있다. 본 발명의 프로그램 개발 시스템은 모듈 부품(M1, M2, ..., Mn) 입출력부에 마이크로컨트롤러(11) 입출력부를 할당하는 것도 포함되므로 다양한 개발 케이스에서의 효율을 높일 수 있다.
사용자 인터페이스를 통한 하드웨어 환경설정에 대해 보다 구체적으로 설명하면, 모듈 선택부(110)로 모듈 부품(M1, M2, ..., Mn)을 선택하면, 선택한 모듈 부품(M1)에 따른 구체적인 하드웨어 환경설정이 가능한 사용자 인터페이스가 나타날 수 있다. 사용자 인터페이스(I100)는 핀 할당을 할 수 있는 영역(I110)과 선택한 모듈 부품(M1)의 상세한 정보를 보여주는 영역(I120)을 포함할 수 있다. 핀 할당을 할 수 있는 영역(I110)에는 모듈 부품의 각 핀에 대응하는 메인보드 핀을 지정할 수 있는 인터페이스(I111) 를 포함할 수 있다. 선택한 모듈 부품(M1)의 상세한 정보를 보여주는 영역(I120)은 선택한 모듈 부품(M1)에 대해 카테고리, 모델, 제조사, 기능 또는 구매처 등이 포함된 정보를 포함할 수 있다. 한편, 상세한 정보를 보여주는 영역(I120)을 마우스 등을 통한 클릭 시에, 해당 모듈 부품(M1)에 대한 보다 상세한 데이터 시트가 링크로 연결되어 제공될 수도 있다.
또한, 모듈 세팅부(120)는 선택한 모듈 부품(M1)의 핀에 할당이 가능한 메인보드(10) 또는 마이크로컨트롤러(11)의 핀만 선택되도록 할 수 있다. 예를 들어, 도 4에 도시된 것처럼 'Row1'핀을 할당할 때, 'Row1'은 디지털 출력 핀이므로 메인보드(10) 또는 마이크로컨트롤러(11)의 핀은 디지털 입력 핀만 선택되도록 할 수 있다. VCC, GND 또는 아날로그 핀은 선택되지 않는다. 종래와 같이 데이터 시트를 비교하며 텍스트 형태로 작성하는 방식에서는 디지털 출력 핀 'Row1'을 아날로그 입력 핀에 할당하는 실수할 수 있지만, 본 발명은 그러한 가능성은 현저히 줄일 수 있다.
일반적으로 하나의 모듈 부품(M1, M2, ..., Mn)의 총 핀의 개수보다 메인보드(10)의 총 핀의 개수가 많으므로, 선택한 모듈 부품(M1, M2, ..., Mn)의 한 핀에 대해 메인보드(10)의 총 핀 중 하나를 할당하는 방식으로 진행될 수 있다.
도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이다. 도 5에 표기된 구동 코드(200)는 프로그램 개발 시스템(100)에서 메인보드(10)의 종류만 선택하고 모듈 부품(M1, M2, ..., Mn)을 연결하지 않은 초기 구동 코드(210)이다.
도 6은 본 발명의 일 실시예에 따른 코드 생성부(140)가 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다. 도 6의 구동 코드(200)는 초기 구동 코드(210)와 코드 생성부(140)가 생성한 구동 코드(220)가 삽입된 구동 코드(200)이다. 코드 생성부(140)는 모듈 세팅부(120)에서 입력한 하드웨어 환경설정이 반영된 구동 코드(220)를 생성할 수 있다. 도 4 및 도 6을 참조하면, 키 패드 모듈(Keypad_4x30)의 Row1, Row2, Row3, Row4, Col1, Col2, Col3의 핀에 대하여 각각 메인보드(10)의 5, 4, 3, 2, 8, 7, 6번 핀을 할당한 하드웨어 환경설정이 생성된 구동 코드(220)에 반영이 된 것을 확인할 수 있다. 그리고 생성된 구동 코드(220)는 선택한 모듈 부품(도 4 및 도 6에서 Keypad_4x30)과 관련된 미리 정의된 함수를 사용할 수 있도록 하는 코드도 포함할 수 있다. 도 6의 생성된 구동 코드(220) 중 '#include <Keypad_4x3.h>'는 키 패드 모듈 부품과 관련된 모듈 코드에 정의된 함수를 구동 코드(200)에서 이용할 수 있도록 구동 코드(200)와 모듈 코드를 연결하는 코드이다. 코드 생성부(140)는 구동 코드(200)에 모듈 코드와 연결하는 코드를 생성하여 구동 코드(200)와 모듈 코드를 연결시키고, 모듈 코드에서 정의된 함수를 구동 코드(200)내에서 손쉽게 사용할 수 있도록 할 수 있다.
이러한 코드 생성부(140)의 구동 코드(220) 생성은 모듈 세팅부(120)에서 하드웨어 환경설정의 완료 시 자동으로 진행될 수 있다. 사용자 인터페이스(I100)를 통해 필 할당을 완료하면 하드웨어 환경설정이 반영된 구동 코드(220)가 자동으로 생성되므로, 개발자는 생성된 구동 코드(220)를 곧바로 확인할 수 있고, 모듈 코드에 포함된 함수를 곧바로 사용할 수 있다.
도 6에서 도시된 코드 생성부(140)에 의해 생성된 구동 코드(220)는 도시된 코드에 한정되는 것이 아니라, 모듈 부품(M1, M2, ..., Mn)에 특성에 맞도록 수정될 수 있고 더 추가될 수 있다. 또한, 초기 구동 코드(210)속에 포함되어 생성될 수 있다.
도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.
도 7를 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 하드웨어 환경설정을 변경하면 변경된 내용이 생성된 구동 코드(220)를 변경할 수 있다. 보다 구체적으로 설명하면, 도 4에 도시된 하드웨어 환경설정에 따른 핀 할당은 키 패드 모듈(Keypad_4x30)의 Row1, Row2, Row3, Row4, Col1, Col2, Col3 핀에 대하여 각각 메인보드(10)의 5, 4, 3, 2, 8, 7, 6으로 할당한 것으로 나타날 수 있다. 이에 따라 도 6에 생성된 구동 코드(220)도 5, 4, 3, 2, 8, 7, 6로 핀 할당이 된 것을 확인할 수 있다. 이 때, 도 7에 도시된 것과 같이 사용자 인터페이스(I110)를 통해 키 패드 모듈(Keypad_4x30)의 Row1 및 Row2 핀을 메인보드(10)의 10, 11 핀으로 할당을 변경하면, 코드 생성부(140)는 도 7의 수정된 구동 코드(221)과 같이 변경된 핀 할당에 따라 이미 생성된 구동 코드(220)를 변경 또는 수정할 수 있다.
개발자는 하드웨어 장치(1)를 개발하는 과정에서 수 많은 모듈 부품에 대해 설계 및 프로그래밍을 반복하게 된다. 그러한 반복되는 과정에서 매번 데이터 시트를 비교하고, 하드웨어 설정 및 코드 작성을 또한 반복하므로 비효율적인 시간 소모가 매우 크다. 또한, 반복하는 과정속에서 코드를 잘못 작성할 가능성도 크다. 보통 디버깅 과정에서 올바르게 수정되지만, 디버깅 시간도 낭비되는 경우가 많다. 이런 하드웨어 장치(1) 개발 과정에서의 비효율적인 자원 소모를 방지할 수 있다.
또한, 본 발명은 단지 코드를 생성하는 것이 아닌 메인보드(10)의 종류에 따라 서로 다른 모듈 부품(M1, M2, ..., Mn)에 대한 정보, 기본적인 하드웨어 설정 및 자주 사용되는 코드인 모듈 코드가 라이브러리부(130)에 저장되고, 개발자는 사용자 인터페이스를 이용하여 간단하게 하드웨어 환경설정을 할 수 있다. 하드웨어 환경설정은 자동으로 구동 코드에 반영되어 개발자가 손쉽게 모듈 부품에 대한 함수를 이용할 수 있으므로 모듈 교체에 따른 수정 시간 자원도 절약할 수 있다.
도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.
도 8을 참조하면, 모듈 코드(300)는 연결할 모듈 부품을 제어하기 위한 코드(변수, 함수 또는 자료형 타입 정의 및 선언)를 구동 코드 내에서 사용이 용이하도록 미리 작성해둔 코드일 수 있다. 도 6의 도시된 코드 생성부(140)가 생성한 구동 코드(220) 중 '#include <keypad_4x3.h>'으로 연결된 모듈 코드가 도 8에 도시되어 있다. 도 8에 도시된 바와 같이, 생성된 구동 코드(220)로 인해, Keypad_4x3의 클래스를 이용할 수 있고, 모듈 코드(300)에 정의된 'getKey()'함수(310)를 구동 코드(200)에서 곧바로 이용할 수 있다. 또한, 모듈 코드(300)내에도 연속되어 연결된 또 다른 모듈 코드(320)가 존재할 수 있다. 모듈 코드 내에서의 종속적으로 연결된 또 다른 모듈 코드(320)로 인해 간단한 하드웨어 환경설정으로 생성된 구동 코드(220)만으로 해당하는 모듈 부품을 제어하는 모든 함수를 이용할 수 있도록 한다.
이러한 모듈 코드(300)는 해당 모듈 부품을 개발자가 각각의 모듈 부품을 이용하기 위해 각각 따로 작성하는 것을 방지하여 자원 낭비를 줄일 수 있다. 모듈 코드는 도 8에 도시된 코드만으로 한정되는 것은 아니며, 다른 다양한 코드도 모듈 코드로 포함될 수 있다. 예를 들어, 모듈 부품의 정보를 JSON(JavaScript Object notation)의 형태로 저장하고, 하드웨어 환경설정에서 상기 모듈 부품의 정보를 나타나게 할 수 있다. 따라서 모듈 코드는 프로그래밍 영역에서 사용되는 모듈화 프로그래밍의 영역보다 더 넓은 의미를 지니며, 모듈 부품을 해당 메인보드(10)에서 사용하고, 이용할 수 있도록 하는 모든 파일 또는 코드를 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따른 코드 변환부가 더 포함된 프로그램 개발 시스템의 블록도이다.
도 9를 참조하면, 메인보드(10) 또는 마이크로컨트롤러(11)에 따라, 작성되어 있는 구동 코드(200)를 메인보드(10) 또는 마이크로컨트롤러(11)에 호환되는 코드로 변경하는 코드 변환부(150)를 더 포함할 수 있다.
메인보드(10) 또는 마이크로컨트롤러(11)가 변경되면, 코드 변환부(150)는 구동 코드(200)에 연결된 모듈 코드에 대해 변경된 메인보드(10) 또는 마이크로컨트롤러(11)에 적합한 모듈 코드로 변경할 수 있다. 예를 들어, Atmega128가 장착된 메인보드에서 ARM M0가 장착된 메인보드로 변경하면, 코드 변환부(150)는 Atmega128에 적합한 코드로 작성된 모듈 코드를 ARM M0에 적합한 모듈 코드로 변경할 수 있다. 코드 생성부(140)는 변경된 모듈 코드를 구동 코드(200)에서 이용할 수 있도록 생성된 모듈 코드(200)를 수정할 수 있다. 예컨대, Atmega128 입출력 핀을 사용하는 모듈 부품 입출력 핀에 대하여, 각각 적합한 ARM M0의 입출력 핀을 선택하여 자동으로 할당할 수 있다. 이 과정에서, 기존 마이크로컨트롤러(11)보다 입출력 핀의 개수가 적거나, 기존 마이크로컨트롤러(11)에는 있는 기능이나 변경된 마이크로컨트롤러에는 없는 기능, 예컨대 아날로그 디지털 컨버터 핀이 없는 경우에는 변경하려는 마이크로컨트롤러가 적합하지 않기 때문에, 사용자에게 알람을 제공할 수 있다.
기존에 생성된 구동 코드(220)는 선택된 메인보드(10)에 맞춰 설정된 모듈 코드를 이용할 수 있도록 생성된 것이다. 따라서, 개발자가 개발 도중 메인보드(10)를 변경하면, 기존에 작성된 구동 코드(200)를 사용할 수 없다. 이 경우, 개발을 처음부터 다시 시작해야했다. 그렇지만 코드 변환부(150)가 변경된 메인보드(10) 또는 마이크로컨트롤러(11)에 적합한 모듈 코드로 변경하므로 개발자는 진행중이던 하드웨어 장치(1) 개발 프로젝트를 계속 진행할 수 있다.
도 10은 본 발명의 일 실시예에 따른 네트워크로 연결된 프로그램 개발 시스템의 블록도이다.
도 10을 참조하면, 라이브러리부(130)는 네트워크로 연결된 외부 서버(400)에 모듈 코드를 저장할 수 있다. 또한, 라이브러리부(130)는 네트워크를 통해 외부 서버(400)에 저장된 모듈 코드를 불러올 수 있다. 프로그램 개발 시스템(100)에 등록된 모듈 부품(M1, M2, ..., Mn) 중 개발자가 필요한 모듈 부품(M1, M2, ..., Mn)이 없어도, 네트워크를 통해 연결된 외부 서버(400)에 저장된 모듈 코드를 불러와 필요한 모듈 부품(M1, M2, ..., Mn)을 프로그램 개발 시스템(100)에 등록시킬 수 있다. 네트워크로 연결된 외부 서버(400)는 모듈 부품(M1, M2, ..., Mn)에 대한 모듈 코드의 방대한 데이터양을 로컬 프로그램 개발 시스템에서 구비하고 있지 않아도 되고, 필요한 모듈 부품(M1, M2, ..., Mn)의 데이터만 불러올 수 있으므로 프로그램 개발 시스템(100)의 최적화가 가능할 수 있다.
또한, 개발자로 하여금 새롭게 출시되는 모듈 부품에 대한 모듈 코드도 업데이트를 통하여 즉각적인 대응이 가능하도록 할 수 있다.
도 11은 본 발명의 일 실시예에 따른 상태 디스플레이부가 포함된 프로그램 개발 시스템의 블록도이며, 도 12는 본 발명의 일 실시예에 따른 상태 디스플레이부가 나타내는 그래픽을 도시한 도면이다.
도 11 및 도 12를 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 메인보드(10)에 연결된 모듈 부품(M1, M2, ..., Mn)과 메인보드(10)의 연결 상태를 그래픽 형태로 나타낼 수 있는 상태 디스플레이부(160)를 포함할 수 있다. 상태 디스플레이부(160)가 나타내는 그래픽(500)은 메인보드 그래픽(510) 및 연결한 모듈 부품 그래픽(520)을 포함할 수 있다.
연결 상태는 메인보드(10)에 연결된 모듈 부품(M1, M2, ..., Mn)의 핀과 그 핀에 할당된 메인보드(10)의 핀의 할당 상태일 수 있다. 연결 상태는 핀 할당이 완료된 상태, 메인보드(10) 핀이 중복되어 할당된 상태, 메인보드(10)의 핀이 할당되지 않은 상태 및 호환되지 않는 메인보드(10) 핀이 할당된 상태를 포함할 수 있다.
상태 디스플레이부(160)는 연결 상태에 따라 알람을 나타낼 수 있다. 알람은 메인보드(10)에 연결한 모듈 부품(M1, M2, ..., Mn)의 위치에 나타날 수 있다. 알람은 다양한 형태로 표시되거나 출력될 수 있다. 예를 들어, 알람은 색상을 지닌 뱃지 아이콘(521)으로 나타날 수 있다. 뱃지 아이콘(521)은 연결 상태에 따라 색상 또는 모양이 변화하여 개발자가 연결한 모듈 부품(520)의 연결 상태에 대해 인지할 수 있게 할 수 있다. 도 11에 도시된 것과 같이 연결된 모듈 부품의 그래픽(520)상에 뱃지 아이콘(521)이 나타날 수 있고, 나타난 뱃지 아이콘(521)은 연결 상태에 종속되어 변화될 수 있다. 핀 할당이 완료된 상태는 녹색으로, 연결된 모듈 부품의 핀 중 하나 이상의 핀에 대하여 메인보드(10) 핀이 중복 할당된 상태면 노란색, 연결된 모듈 부품의 핀 중 하나 이상의 핀에 대하여 메인보드(10) 핀이 할당되지 않은 상태면 회색, 연결된 모듈 부품의 핀 중 하나 이상의 핀에 대하여 메인보드(10) 핀이 호환되지 않는 핀이 할당되면 빨간색으로 나타날 수 있다.
도 13은 본 발명의 일 실시예에 따른 하드웨어 환경설정 과정에서 중복 할당된 핀의 알람을 나타낸 도면이다.
도 13을 참조하면, 도 11의 상태 디스플레이부(160)는 모듈 부품에 대한 하드웨어 환경설정 할 때, 모듈 부품의 그래픽(I130)을 나타낼 수 있다. 알람은 하드웨어 환경설정 과정에서 나타나는 모듈 부품의 그래픽(I130)에도 나타날 수 있다. 모듈 부품의 그래픽(I130)에서 중복으로 할당된 모듈 부품의 핀의 위치에 알람(I131)이 나타날 수 있다. 이 과정에서 모듈 세팅부(120)와 연계되어 동작할 수 있다. 모듈 세팅부(120)는 핀 할당하는 과정에서 핀의 연결 상태에 대해 개발자가 인지할 수 있도록 모듈 부품의 각 핀이 메인보드(10) 또는 마이크로컨트롤러(11)의 각 핀에 중복으로 할당이 되는 경우 알람(I112)을 제공할 수 있다. 또한, 상태 디스플레이부(160)가 나타낸 핀 할당된 모듈 부품의 그래픽(I131)에서 중복으로 할당된 핀에 대해서 알람이 나타나면, 나타난 알람에 입력장치의 포커스를 두면 모듈 세팅부(120)는 핀 할당 인터페이스가 그 위치에서 나타나 핀 할당 수정을 곧바로 하도록 유도할 수 있다. 예를 들면, 그래픽으로 나타난 모듈 부품의 핀의 연결 상태 그래픽(I131)에서 중복 할당된 핀은 노란색으로 나타날 수 있다. 개발자는 마우스의 커서를 노란색으로 표시된 핀으로 가져가면, 커서가 그 위치에 진입 또는 일정한 조건이 만족된 상태가 되면 핀 할당을 할 수 있는 인터페이스가 팝업으로 나타나도록 할 수 있다. 개발자는 그래픽으로 핀 할당에 대한 연결상태를 실시간으로 확인할 수 있고, 보다 직관적으로 연결 상태에 대한 문제점을 인식하고 해결할 수 있다. 텍스트 형태로 작성하는 프로그래밍의 특성 상 메인보드(10)의 핀에 모듈 부품 핀이 중복하여 할당하는 빈번한 실수를 줄일 수 있거나 없앨 수 있다.
알람은 뱃지 아이콘으로만 나타날 수 있는 것으로 한정되는 것은 아니며, 연결 상태를 개발자가 인지할 수 있는 형태면 가능하다.
도 14은 본 발명의 일 실시예에 따른 하드웨어 진단부가 포함된 프로그램 개발 시스템의 블록도이다.
도 14을 참조하면, 본 발명의 일 실시예에 따른 프로그램 개발 시스템(100)은 하드웨어 장치의 연결상태를 진당 가능하도록 미리 작성된 진단 프로그램을 하드웨어 장치(1)에 업로드하는 하드웨어 진단부(170)를 포함할 수 있다.
하드웨어 진단부(170)는 완성한 하드웨어 장치(1)를 테스트하기 위한 프로그램이 탑재되어 있다. 하드웨어 진단부(170)는 완성한 하드웨어 장치(1)에 탑재된 테스트 프로그램을 업로드하여 테스트 프로그램이 하드웨어 장치(1)를 구동하도록 할 수 있다. 테스트 프로그램은 하드웨어 장치(1)에 포함된 하나 이상의 모듈 부품과 메인보드(10) 또는 마이크로컨트롤러(11)와 연결상태를 확인할 수 있는 프로그램이다. 예를 들면, 하드웨어 장치(1)에 디스플레이 모듈 및 스피커 모듈이 장착되었다면, 하드웨어 진단부(170)가 업로드하는 테스트 프로그램은 하드웨어 장치(1)에 장착된 디스플레이 모듈에서 간단한 영상 또는 텍스트가 출력되도록 하고, 스피커 모듈에서 사운드가 출력되도록 하는 프로그램일 수 있다. 하드웨어 장치(1)을 개발하다 보면, 디버깅에서 오류가 나타나지 않았는데 하드웨어 장치(1)에서는 정상적으로 구동되지 않는 경우가 자주 발생한다. 보통 코드 상으로는 오류점이 없으나 메인보드(10) 및 마이크로컨트롤러(11)와 모듈 부품들 사이에 물리적인 연결이 제대로 되어 있지 않은 경우이다. 간단한 문제처럼 보이지만, 실제 개발 환경에서는 물리적인 연결상태를 확인할 생각도 못하고 코드의 문제점만 찾으려는 경향이 꽤 크다. 하드웨어 진단부(170)는 이런 문제점을 간단히 해결하여, 하드웨어 장치(1) 개발에서 비효율적으로 낭비되는 시간을 줄일 수 있다.
이하 프로그램 개발 시스템(100)을 이용한 프로그램 개발 방법에 대해 설명한다. 각 개발 방법 단계에 대한 구체적인 설명은 프로그램 개발 시스템과 동일하므로, 간단하게만 언급하기로 한다.
도 15는 본 발명의 일 실시예에 따른 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 15를 참조하면, 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템을 이용한 프로그램 개발 방법은 모듈 선택 단계(S110), 모듈 세팅 단계(S120) 및 코드 생성 단계(S130)를 포함할 수 있다.
모듈 선택 단계(S110)는 상기 메인보드에 연결하려는 모듈 부품을 선택하는 단계일 수 있다.
모듈 세팅 단계(S120)는 모듈 선택 단계(S110)에서 선택된 모듈 부품에 대한 하드웨어 환경설정을 사용자 인터페이스를 통해 입력하는 단계일 수 있다. 여기서 하드웨어 환경설정은 선택된 모듈 부품의 각 핀을 메인보드 또는 마이크로컨트롤러의 각 핀에 할당하는 것일 수 있다. 또한, 모듈 세팅 단계에서는 모듈 부품의 각 핀이 메인보드 또는 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공할 수 있다.
코드 생성 단계(S130)는 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 단계일 수 있다. 코드 생성 단계(S130)는 모듈 부품과 미리 작성된 모듈 코드를 이용하여 구동 코드를 자동으로 생성하고, 모듈 세팅 단계(S120)에서 입력된 하드웨어 환경설정을 구동 코드에 자동으로 반영하는 단계일 수 있다.
도 16은 본 발명의 일 실시예에 따른 하드웨어 진단 단계가 포함된 프로그램 개발 방법의 흐름도를 나타낸 도면이다.
도 16을 참조하면, 도 15의 코드 생성 단계(S130) 이후로, 하드웨어 진단 단계(S140)를 더 포함할 수 있다. 하드웨어 진단 단계(S140)는 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 하드웨어 장치에 업로드하는 단계일 수 있다.
도 17은 본 발명의 일 실시예에 따른 핀의 중복 할당 검출 단계가 포함된 프로그램 개발 방법의 흐름도이다.
도 17을 참조하면, 모듈 부품을 선택하는 모듈 선택 단계(S210), 선택한 모듈 부품에 대해 메인보드의 핀을 할당하는 모듈 세팅 단계(S220)가 포함될 수 있다. 모듈 세팅 단계(S220)이후, 모듈 부품의 각 핀에 할당한 메인보드의 핀에 대해 중복 할당된 핀이 존재하는지 검출하는 단계(S230)가 포함될 수 있다. 할당된 메인보드의 핀 중 중복 할당된 핀이 없다면, 코드 생성 단계(S250)으로 넘어갈 수 있다. 중복 할당된 핀이 있다면, 중복 할당된 핀이 중복 할당이 가능한 핀인지, 가능하지 않은 핀인지 확인 하는 단계(S240)가 이어질 수 있다. 예를 들어, 중복 할당이 된 핀이 캔-버스(CAN-BUS)와 같은 메인보드의 네트워크 통신과 관련된 핀이거나, VCC 또는 GND와 같은 핀이라면, 다른 모듈과 중복 할당이 가능하므로 알람을 발생시키지 않고, 코드 생성 단계(S250)로 넘어갈 수 있다. 한편, 중복 할당된 핀이 마이크로컨트롤러의 데이터 입출력과 관련된 핀인 경우, 이미 다른 모듈이 해당 핀을 선점하여 사용하는 경우에 중복 할당이 불가능할 수 있다. 이 경우, 모듈 세팅부 및 상태 디스플레이부를 통해 중복 할당이 발생했다는 알람을 발생시키는 알람 발생 단계(S241)로 이어질 수 있다. 알람 발생 단계(S241) 이후 중복할당이 되었더라도, 코드 생성 단계(S250)로 넘어가서 구동 코드가 생성될 수 있다. 개발자는 중복 할당에 관한 알람을 확인하고, 사용자 인터페이스를 통해 핀 할당은 변경하면, 변경된 핀 할당을 반영하여 코드 생성부가 구동 코드를 변경할 수 있다. 또는 개발자가 직접 텍스트 코드를 수정하여 핀 할당을 변경할 수 있다. 개발자가 직접 텍스트 코드를 변경하면, 모듈 세팅부는 변경된 코드를 확인하여, 변경된 핀 할당에서 중복 할당된 핀이 없는지 다시 확인을 하는 단계를 거칠 수 있다.
이러한 중복 할당 핀을 검출하는 단계는 종래에 개발자가 프로그램을 하드웨어 장치에 업로드 하는 단계에서 검출하는 단계보다 빠른 코딩 단계에서 검출할 수 있으므로 비효율적인 시간 낭비를 줄일 수 있다. 또한, 중복 할당이 가능한 핀인지 아닌지 개발자가 데이터 시트를 확인하고 검토할 필요를 줄여주므로 개발 속도가 더 빨라질 수 있다.
본 명세서에 기재된 다양한 실시예들은 하드웨어, 미들웨어, 마이크로코드, 소프트웨어 및/또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 다양한 실시예들은 하나 이상의 주문형 반도체(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 프로세싱 디바이스(DSPD)들, 프로그램어블 논리 디바이스(PLD)들, 필드 프로그램어블 게이트 어레이(FPGA)들, 프로세서들, 컨트롤러들, 마이크로컨트롤러들, 마이크로컨트롤러들, 여기서 제시되는 기능들을 수행하도록 설계되는 다른 전자 유닛들 또는 이들의 조합 내에서 구현될 수 있다.
또한, 예를 들어, 다양한 실시예들은 명령들을 포함하는 컴퓨터-판독가능한 매체에 수록되거나 인코딩될 수 있다. 컴퓨터-판독가능한 매체에 수록 또는 인코딩된 명령들은 프로그램 가능한 프로세서 또는 다른 프로세서로 하여금 예컨대, 명령들이 실행될 때 방법을 수행하게끔 할 수 있다. 컴퓨터-판독가능한 매체는 컴퓨터 저장 매체 및 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 예를 들어, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학디스크 저장 매체, 자기 디스크 저장 매체 또는 기타 자기 저장 디바이스 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스가능한 명령들 또는 데이터 구조들의 형태로 반송하거나 저장하는데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다.
이러한 하드웨어, 소프트웨어, 펌웨어 등은 본 명세서에 기술된 다양한 동작들 및 기능들을 지원하도록 동일한 디바이스 내에서 또는 개별 디바이스들 내에서 구현될 수 있다. 추가적으로, 본 발명에서 "~부"로 기재된 구성요소들, 유닛들, 모듈들, 컴포넌트들 등은 함께 또는 개별적이지만 상호 운용 가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 모듈들, 유닛들 등에 대한 서로 다른 특징들의 묘사는 서로 다른 기능적 실시예들을 강조하기 위해 의도된 것이며, 이들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야만 함을 필수적으로 의미하지 않는다. 오히려, 하나 이상의 모듈들 또는 유닛들과 관련된 기능은 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 수행되거나 또는 공통의 또는 개별의 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수 있다.
특정한 순서로 동작들이 도면에 도시되어 있지만, 이러한 동작들이 원하는 결과를 달성하기 위해 도시된 특정한 순서, 또는 순차적인 순서로 수행되거나, 또는 모든 도시된 동작이 수행되어야 할 필요가 있는 것으로 이해되지 말아야 한다. 임의의 환경에서는, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 구성요소들의 구분은 모든 실시예에서 이러한 구분을 필요로 하는 것으로 이해되어서는 안되며, 기술된 구성요소들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야 한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.

Claims (21)

  1. 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템으로서,
    상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부;
    상기 모듈 선택부에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 상기 사용자 인터페이스를 통하여 입력하는 모듈 세팅부;
    상기 모듈 부품과 관련된 모듈 코드를 저장하는 라이브러리부; 및
    상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성부;를 포함하고,
    상기 코드 생성부는, 상기 라이브러리부에 저장된 상기 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 상기 모듈 세팅부에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영하는 것인 프로그램 개발 시스템.
  2. 제1항에 있어서,
    상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함하는 것인 프로그램 개발 시스템.
  3. 제2항에 있어서,
    상기 선택된 모듈 부품의 핀에 할당된 상기 메인보드 또는 상기 마이크로컨트롤러의 핀이 변경되면, 변경된 핀 할당에 따라 상기 모듈 코드를 변경하는 것인 프로그램 개발 시스템.
  4. 제2항에 있어서,
    상기 모듈 세팅부는, 상기 선택된 모듈 부품의 핀에 할당이 가능한 상기 메인보드 또는 상기 마이크로컨트롤러의 핀만 선택되도록 하는 프로그램 개발 시스템.
  5. 제1항에 있어서,
    상기 하드웨어 환경설정은, 상기 모듈 부품의 입출력부를 상기 마이크로컨트롤러의 입출력부에 할당하는 것을 포함하는 것인 프로그램 개발 시스템.
  6. 제1항에 있어서,
    상기 모듈 코드는 상기 모듈 세팅부에서 상기 하드웨어 환경설정의 완료 시 자동으로 생성되는 것인 프로그램 개발 시스템.
  7. 제1항에 있어서,
    상기 모듈 선택부는, 상기 메인보드의 종류와 호환 가능한 모듈 부품만 선택되도록 하는 것인 프로그램 개발 시스템.
  8. 제1항에 있어서,
    상기 메인보드 또는 상기 마이크로컨트롤러에 따라, 작성되어 있는 상기 구동 코드를 상기 메인보드 또는 상기 마이크로컨트롤러에 호환되는 코드로 변경하는 코드 변환부를 더 포함하는 것인 프로그램 개발 시스템.
  9. 제1항에 있어서,
    상기 라이브러리부는 네트워크로 연결된 외부 서버에 상기 모듈 코드를 저장하는 것인 프로그램 개발 시스템.
  10. 제1항에 있어서,
    상기 메인보드에 연결된 상기 모듈 부품과 상기 메인보드의 연결 상태를 그래픽 형태로 나타내는 상태 디스플레이부를 포함하는 것인 프로그램 개발 시스템.
  11. 제10항에 있어서,
    상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함하고,
    상기 모듈 세팅부는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공하는 것인 프로그램 개발 시스템.
  12. 제11항에 있어서,
    상기 알람은, 상기 선택된 모듈 부품의 핀에 대해 상기 메인보드 또는 상기 마이크로컨트롤러의 핀을 선택할 때 발생하는 것인 프로그램 개발 시스템.
  13. 제12항에 있어서,
    상기 알람은, 상기 상태 디스플레이부에서 중복으로 할당된 핀의 위치에 나타나도록 하는 것인 프로그램 개발 시스템.
  14. 제1항에 있어서,
    상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어에 업로드하는 하드웨어 진단부;를 포함하는 것인 프로그램 개발 시스템.
  15. 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템으로서,
    상기 모듈 부품을 선택하는 모듈 선택부;
    사용자 인터페이스를 통하여 상기 모듈 선택부에서 선택된 상기 모듈 부품의 각 핀을 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀에 설정하는 모듈 세팅부; 및
    상기 모듈 선택부에서 선택된 상기 모듈 부품을 포함하는 상기 하드웨어 장치를 구동하기 위한 구동 코드를 자동으로 생성하되, 상기 모듈 세팅부에서 설정된 상기 모듈 부품의 각 핀의 정보를 이용하여 상기 구동 코드를 생성하는 코드 생성부를 포함하는 것인 프로그램 개발 시스템.
  16. 제15항에 있어서,
    상기 모듈 부품의 각 핀과 상기 마이크로컨트롤러 또는 상기 메인보드의 각 핀은 입출력과 관련된 핀인 것인 프로그램 개발 시스템.
  17. 마이크로컨트롤러가 장착된 메인보드와, 상기 메인보드와 전기적으로 연결되는 하나 이상의 모듈 부품을 포함하는 하드웨어 장치를 구동하기 위한 프로그램 개발 시스템을 이용한 프로그램 개발 방법으로,
    상기 모듈 부품을 선택하는 모듈 선택 단계;
    상기 모듈 선택 단계에서 선택된 상기 모듈 부품에 대한 하드웨어 환경설정을 사용자 인터페이스를 통하여 입력하는 모듈 세팅 단계; 및
    상기 하드웨어 장치를 구동하기 위한 구동 코드를 생성하는 코드 생성 단계;를 포함하고,
    상기 코드 생성 단계는, 상기 모듈 부품과 관련한 미리 작성된 모듈 코드를 이용하여 상기 구동 코드를 자동으로 생성하고, 상기 모듈 세팅 단계에서 입력된 상기 하드웨어 환경설정을 상기 구동 코드에 자동으로 반영하는 것인 프로그램 개발 방법.
  18. 제17항에 있어서,
    상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함하는 것인 프로그램 개발 방법.
  19. 제17항에 있어서,
    상기 하드웨어 환경설정은, 상기 선택된 모듈 부품의 각 핀을 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 할당하는 것을 포함하고,
    상기 모듈 세팅 단계는, 상기 모듈 부품의 각 핀이 상기 메인보드 또는 상기 마이크로컨트롤러의 각 핀에 중복으로 할당이 되는 경우에 알람을 제공하는 것인 프로그램 개발 방법.
  20. 제17항에 있어서,
    상기 하드웨어 장치의 연결상태를 진단 가능하도록 미리 작성된 진단 프로그램을 상기 하드웨어 장치에 업로드하는 하드웨어 진단 단계;를 포함하는 것인 프로그램 개발 방법.
  21. 제17항 내지 제21항 중 어느 한 항에 따른 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체.
PCT/KR2019/010887 2018-10-05 2019-08-27 프로그램 개발 시스템 및 이를 이용한 개발 방법 WO2020071639A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0118650 2018-10-05
KR1020180118650A KR101993858B1 (ko) 2018-10-05 2018-10-05 프로그램 개발 시스템 및 이를 이용한 개발 방법

Publications (1)

Publication Number Publication Date
WO2020071639A1 true WO2020071639A1 (ko) 2020-04-09

Family

ID=67057277

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/010887 WO2020071639A1 (ko) 2018-10-05 2019-08-27 프로그램 개발 시스템 및 이를 이용한 개발 방법

Country Status (3)

Country Link
US (1) US20200110586A1 (ko)
KR (1) KR101993858B1 (ko)
WO (1) WO2020071639A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101993858B1 (ko) * 2018-10-05 2019-06-27 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법
CN114115763B (zh) * 2021-11-15 2024-05-17 上海商米科技集团股份有限公司 打印机平台化产品的配置装置及配置方法
KR102665088B1 (ko) * 2022-09-08 2024-05-09 한진석 교육용 자동화 설비 제작 시뮬레이션 시스템 및 이를 이용한 교육용 자동화 설비 제작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07193999A (ja) * 1993-12-28 1995-07-28 Mazda Motor Corp 設備電源の設計方法及び装置
US20050132307A1 (en) * 2002-02-08 2005-06-16 Paul Schwann Method for the providing of a design, test and development enviroment and system for carrying out said method
JP2007164241A (ja) * 2005-12-09 2007-06-28 Nec Corp ソフトウェア部品検索システム及び方法
KR20090110486A (ko) * 2008-04-18 2009-10-22 주식회사 하이드로젠파워 로봇 제어 코드 생성 방법 및 그 장치
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치
KR101993858B1 (ko) * 2018-10-05 2019-06-27 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674515B1 (ko) 2015-01-20 2016-11-09 주식회사 크레스프리 IoT 디바이스의 임베디드 소프트웨어 개발 환경 시스템 및 이를 이용한 임베디드 소프트웨어 개발 환경 제공 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07193999A (ja) * 1993-12-28 1995-07-28 Mazda Motor Corp 設備電源の設計方法及び装置
US20050132307A1 (en) * 2002-02-08 2005-06-16 Paul Schwann Method for the providing of a design, test and development enviroment and system for carrying out said method
JP2007164241A (ja) * 2005-12-09 2007-06-28 Nec Corp ソフトウェア部品検索システム及び方法
KR20090110486A (ko) * 2008-04-18 2009-10-22 주식회사 하이드로젠파워 로봇 제어 코드 생성 방법 및 그 장치
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치
KR101993858B1 (ko) * 2018-10-05 2019-06-27 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법

Also Published As

Publication number Publication date
US20200110586A1 (en) 2020-04-09
KR101993858B1 (ko) 2019-06-27

Similar Documents

Publication Publication Date Title
WO2020071639A1 (ko) 프로그램 개발 시스템 및 이를 이용한 개발 방법
KR940002324B1 (ko) 프로그래머블 콘트롤러
US10452111B2 (en) Enhanced re-hosting capability for legacy hardware and software
JP5858037B2 (ja) ネットワークシステム、マスター装置およびネットワークシステムの制御方法
CN100383737C (zh) 单片机在线加载升级方法及系统
JP2008282363A (ja) プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム
CN104765621A (zh) 一种在集群节点中部署程序的方法和系统
CN105653326A (zh) 一种批量Linux系统安装及检测的系统及方法
CN101566923B (zh) 一种目标端scsi设备统一驱动模块及方法
US10198538B1 (en) Relocate targets to different domains in an emulator
WO2020111671A1 (en) Electronic apparatus and control method thereof
WO2021002724A1 (en) Electronic apparatus and control method thereof
TW200304297A (en) Clustered/fail-over remote hardware management system
JP2021152862A (ja) 情報処理装置、情報処理方法、制御プログラム、記録媒体、物品の製造方法
CN111007815A (zh) 一种支持双机热备的集中控制主机
US8825897B2 (en) Positional addressing for a computer cluster
US7366889B2 (en) Computer cluster control network comprising a first network to communicate control data and a second network to communicate non-control data between processing nodes
US20230400843A1 (en) Line Designing Device and Line Designing Method
CN117950919A (zh) 一种PCIe拓扑的切换方法及服务器
US20220221837A1 (en) Apparatus, system, and method of functional safety
WO2024029094A1 (ja) 画面表示システムおよび画面表示方法
KR101985807B1 (ko) 장비 id를 이용한 동적 기능 할당방법 및 그를 위한 장치
US20060069811A1 (en) Computer cluster
CN112988174A (zh) 汽车电子模块的烧录装置
JPH03237502A (ja) プログラマブル・コントローラ

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19868356

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19868356

Country of ref document: EP

Kind code of ref document: A1