【正文】
nd data to Virtual ARM Platform. By using the platformspecific data file, developers are allowed to use the same code to control the peripheral devices in both Virtual ARM Platform and the real H/W platform. Figure 6. Execution procedure of Virtual ARM Simulator Table 1. Sample of the platform specific data file targeted on SYSLab 5000 ARM H/W Platform . Graphic user interface Graphic User Interface is used to handle input events, synchronize the program, and print the simulation results on screen. See Figure 7 for the overall structure of our GUI. Authorized licensed use limited to: Zhengzhou University. Downloaded on February 25, 2020 at 05:15 from IEEE Xplore. Restrictions apply. 590 Figure 7. Graphic User Interface and Virtual ARM Simulator Figure . LED Control in Virtual ARM Platform without GUI Figure . LED Control in Virtual ARM Platform with GUI Targeted On SYSLab 5000 Platform GUI looks just like the real target H/W platform. GUI shows the result of peripheral device control by printing the changes in the device visually. Also, Virtual ARM Platform detects external inputs when the developer clicks the external input devices in GUI such as keypad or switch. Figure shows an example of implemented GUI, while Figure shows an example of Virtual ARM Platform without GUI, when the developer is controlling the peripheral devices. Figure 9. How OS Timer Works in Virtual ARM Platform . Timer and I/O devices We have also implemented a timer called “Timer” inside of Virtual ARM Platform. Timer is initialized when the Virtual ARM Platform starts. By using Timer, developers can test watchdog timer interrupt, context switching and simple OS simulation such as 181。C/OSII [6]. Figure 9 shows Timer used as the OS Timer. Virtual SDRAM enables Virtual ARM Simulator to use it just like an SDRAM module. By using Virtual SDRAM as virtual memory, Virtual ARM Simulator can simulate firmware level code by linking I/O control code section to the startup code just as a real H/W ARM Platform does. Figure 10 shows that the same firmware level code is executed in both our Virtual ARM Platform and the real H/W ARM Platform. Figure 10. Execution of firmware level code in Virtual ARM Platform and H/W ARM Platform Figure . Implementation of Dotmatrix Authorized licensed use limited to: Zhengzhou University. Downloaded on February 25, 2020 at 05:15 from IEEE Xplore. Restrictions apply. 591 Figure . Implementation of 7Segment Figure . Implementation of TextLCD Figure . Implementation of Motor Also we have implemented LED, DotMatrix, 7Segment, TextLCD, Step Motor, DC Motor, and Keypad module. LED (Figure ), Dotmatrix (Figure ), 7Segment (Figure ) are implemented to convert given control data to graphical output synchronized with CPU clock time. TextLCD (Figure ) is implemented to print the given text data on the LCD screen step by step under the control of given text control data. Step Motor and DC Motor (Figure ) are implemented in such a way that they visually spin without being synchronized with the CPU clock but under the control of given speed control data. Keypad is implemented to detect the mouse click per each key button, sending corresponding input data to Virtual ARM Platform. 5. Experimental results We have carried out experiments to test the performance of our proposed Virtual ARM Platform. We made test application described in Figure 12, which requires the plete control of every device on our embedded board. By using the test application (Figure 13), we could see both the target real H/W platform and our Virtual ARM Platform act exactly same, as Figure and Figure show the identical execution results. 1: Initialize TextLCD 2: Print “Virtual ARM” on TextLCD 3: Activate STEP MOTOR to spin 4: Sequentially Turn ONa