#환경 설정


Ubuntu10 압출 풀기 -> 새로만들기 -> 이름 버전 입력(32bit linux)-> 메모리 4G -> 하드 디스크(기존 가상 하드 디스크 파일 사용)

-> virtualBox 실행


(Ubuntu)

장치 -> 게스트 확장 클릭 -> 바탕화면의 CD 더블클릭 ->autorun.sh 터미널에서 실행


(virtualBox)

virtualBox의 설정 ->네트워크 -> 브리지 어댑터 ->ASIX 설정

/*

이전에 드라이버가 설치 되어 있는지 확인(windows의 장치 관리자 확인)

*/

장치 ->공유 폴더 ->추가 ->(window 폴더 설정)->자동마운트,항상사용하기 선택


(Windows)

Tera Term 설치 -> Serial 클릭 -> setup Serial prot 115200으로 설정 

S3c2450 전원 키기


(Ubuntu)

# cd /etc/xinetd.d/

# gedit tftpd 


service tftp


{


protocol = udp


port = 69


socket_type = dgram


wait = yes


user = nobody


server = /usr/sbin/in.tftpd


server_args = /tftpboot


disable = no


}



# mkdir /tftpboot/

# chmod 777 /tftpboot/

# /etc/init.d/xinetd restart


 * Stopping internet superserver xinetd                                  [ OK ] 


 * Starting internet superserver xinetd                                  [ OK ]




# netstat -au


#halt =>종료

(reboot 할것)


(bootroad) =>보드의 reset 버튼 누르고 enter해서 진입(명령대기 상태)

/*

bootroad의 부팅은 2가지 1.자동부팅 2.명령대기 상태(프롬프트 상태)

*/


#printenv

#setenv serverip 192.168.10.107

#setenv ipaddr 192.168.10.117


#saveenv

/*

ip를 직접 잡아줍니다.

*/


(Ubuntu)

# ifconfig eth0 192.168.10.107 up

# ifconfig

# cd /media/sf_D_DRIVE/

# ls


MDS2450.bin ==>(윈도우의 공유파일에 직접 넣어준 파일)



# cp MDS2450.bin /tftpboot/

# chmod 777 /tftpboot/MDS2450.bin ‬ ==>Access violation오류시



(bootroad)

#tftp 30000000 MDS2450.bin //PC로 부터 다운로드

#go 30000000 //실행





led.zip와 arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2를 리눅스에 생성된 공유파일(sf_D_DRIVE)에 넣는다.


(Ubuntu)

#cd /media/sf_D_DRIVE

#cp led.zip /root


# cp arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 /root


#cdtar  /root


#tar xvjf arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2


/*


tar.bz2 ->xvjf


tar.bz  ->xvzf


*/


#cd /etc


#gedit environment



PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/root/arm-2011.03/bin"


/*

수정

*/




#source /etc/environment


#arm-none-eabi-gcc




#cd /root



#unzip led.zip


#cd led


#cd SOURCE




#ls -al

#gedit Main.c

/*

소스 입력

*/



#make clean


#make


/*

Makefile : 컴파일 자동화 유티리티

clean후 컴파일

*/


#cp MDS2450.bin /tftpboot



/*

tftp(file transfer protocol)를 통해 board에 보내어 board에서 실행한다


PC(host)/ TFTP server  || targetboard()/client

*/



(bootroad)




#tftp 30000000 MDS2450.bin

/*

다운로드

*/


#go 30000000





<Main.c>작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "2450addr.h"    //S3c2450의 모든 register주소가 들어있는 헤더파일
#define GPGCON (*(volatile unsigned int *)0x56000060)
#define GPGDAT (*(volatile unsigned int *)0x56000064)
 
void LED_Port_Init(void);
void LED_ON_Off(int num);
 
void Main()
{
    
    LED_Port_Init();
    while(1)
    {
        int i;
        LED_ON_Off(5);
        for(i=0; i<300000; i++);
        LED_ON_Off(6);
        for(i=0; i<300000; i++);
        LED_ON_Off(1);
        for(i=0; i<300000; i++);
        LED_ON_Off(2);
        for(i=0; i<300000; i++);
        LED_ON_Off(4);
        for(i=0; i<300000; i++);
        LED_ON_Off(3);
        for(i=0; i<300000; i++);
    }
}
void LED_Port_Init() 
{
    GPGDAT |= 0xf0;
    GPGCON |= 0x5500;
}
 
void LED_ON_Off(int num)
{    
    GPGDAT |= 0xf0;
    switch(num){
        case 1:
            GPGDAT &= (0xe0);
            break;
        case 2:
            GPGDAT &= (0xd0);
            break;
        case 3:
            GPGDAT &= (0xb0);
            break;
        case 4:
            GPGDAT &= (0x70);
            break;
        case 5:
            GPGDAT &= (0x30);
            break;
        case 6:
            GPGDAT &= (0xc0);
            break;
    }
}
 
cs





+ Recent posts