Lab1 -  Serial Communication between ARM Development board and PC

Lab1 - Transfer data from arm development board to PC via Serial Communication

Abstract

In this project, we can display predefined student name and ID on console of hyper terminal using ARM S3C44BOX board. With the help of this project we can understand how we can transfer data from arm development board to PC via serial communication.

1. Introduction

Serial port of ARM board is used for data transfer from arm board to pc console. First we can load our program through parallel port of PC using JTEG and program is loaded in boot address of Flash ROM and then using serial communication data is transferred to PC and we can see the data on pc console using hyper terminal software.

2. Methodology

3. Implementation

4. Testing and Verification

The program is verified using hyper terminal. The following steps are taken to test the data display on hyper terminal.

Fig 3 Output on Hyper terminal

5. Conclusion

This project provides good understanding of data transfer from board to pc. This project is a good learning experience of how to use ARM board and it will useful in future to make more complex project.

6. References

[1] H. Li,  “Author Guidelines for CMPE 146/242 Project Report”, Lecture Notes of CMPE 146/242, Computer Engineering Department, 2007, pp. 1.

[2] CTI Development Board Distribution CD, CTI Plus Corporation, Palo Alto.

7. Appendix

.    

7.1 S3C44BOX Block Diagram

7.2 Program Code

//*******************************

//Coaded By: ABC

//Date: MM/DD/YYYY

//Version: 1.0

//Status: Complete

//Discreption: This program displays predefined data in program to pc console

//*******************************

#include <string.h>

#include "..\inc\option.h"

#include "..\inc\44b.h"

#include "..\inc\44blib.h"

#include "..\inc\def.h"

void Isr_Init(void);

void HaltUndef(void);

void HaltSwi(void);

void HaltPabort(void);

void HaltDabort(void);

void Main(void)

{

  rSYSCFG=SYSCFG_8KB;

#if (PLLON==1)

    ChangePllValue(PLL_M,PLL_P,PLL_S);

#endif

 Isr_Init();

 Port_Init();

 Uart_Init(0,115200);

 Uart_Select(0);

 Uart_Printf("\n\t STUDENT NAME:- ABC ");

 Uart_Printf("\n\t STUDENT ID:- 001234567 \n");

}

void Isr_Init(void)

{

    U32 i;

    pISR_UNDEF=(unsigned)HaltUndef;

    pISR_SWI  =(unsigned)HaltSwi;

    pISR_PABORT=(unsigned)HaltPabort;

    pISR_DABORT=(unsigned)HaltDabort;

    for(i=_RAM_STARTADDRESS;i<(_RAM_STARTADDRESS+0x20);i+=4)

    {

      *((volatile unsigned *)i)=0xEA000000+0x1FFE;

   }

    //rINTCON=0x1;                    // Vectored Int. IRQ enable,FIQ disable

    rINTCON=0x5;                      // Non-vectored,IRQ enable,FIQ disable

    rINTMOD=0x0;                      // All=IRQ mode

    rINTMSK|=BIT_GLOBAL|BIT_EINT3;    // All interrupt is masked.

}

void HaltUndef(void)

{

 Uart_Printf("Undefined instruction exception!!!\n");

while(1);

}

void HaltSwi(void)

{

 Uart_Printf("SWI exception!!!\n");

 while(1);

}

void HaltPabort(void)

{

 Uart_Printf("Pabort exception!!!\n");

  while(1);

}

void HaltDabort(void)

{

 Uart_Printf("Dabort exception!!!\n");

 while(1);

}