Thursday, May 19, 2016

Лаборатори 6

Лаборатори №6.

Лабораторийн нэр:               Compile uboot source.


1.      Uboot_smdkv210 хавтас руу шилжин орно.


 1.      Smdkv210single_config-г make хийнэ.

     Одоо make хийнэ

1.      Make хийснээр uboot.bin файл үүснэ.

1.      Доорх командаар u_boot.bin файлаа wnidows руу хуулна.

1.      Үүний дараагаар DNW tool ашиглан NAND flash руу бичиж өгнө. 




Лаборатори 7

Лаборатори №7.
Лабораторийн нэр:               Compile Kernel source.


1.      Windows-оос kernel_smdkv210.tar.gz файлаа хуулж оруулж ирнэ.
     
Оруулж ирсэн файлаа tar zxvf командаар задлана.

1.      kernel_smdkv210 хавтас руу шилжиж орно.

1.      make zImage хийхээс өмнө кернел үүсээгүй байдал.

1.      make zImage командаар kernel-ийг үүсгэнэ.


zImage файл үүссэн байдал

      Үүсгэсэн zImage файлаа windows руу хуулна.
       Үүний дараа NAND flash руу бичнэ. 

Лаборатори Keys

 Лабораторийн ажлын нэр: Keys



Key.c application кодыг дараах байдлаар өөрчилсөн.
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>
#define NOKEY 0
int main()
{
                int keys_fd;
                int led_fd;
                int tolow;
                int led_no;
                char ret[2];
                struct input_event t;
                keys_fd = open("/dev/input/event0", O_RDONLY);
                if(keys_fd<=0)
                                                                                {
                                                                                                printf("open /dev/event0 device error!\n");
                                                                                                return 0;
                                                                                }
while(1)
                                {
                                led_fd=open("/dev/led",O_RDWR);
                                if(led_fd<=0)
                                                                                {
                                                                                                printf("open /dev/event0 device error!\n");
                                                                                                return 0;
                                                                                }
                                if(read(keys_fd,&t,sizeof(t))==sizeof(t)) {
                                                if(t.type==EV_KEY)
                                                if(t.value==0 || t.value==1)
                                                                                                   {
switch(t.code)
                                {
                                                                                                                                                                                                                                                case 102:
                                                                                                                                                                                                                                                printf("key_4 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                if(led_no==2){
                                                                                                                                                                                                                                                tolow==0;}else{tolow=1;}
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                case 139:
                                                                                                                                                                                                                                                printf("key_1 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                if(led_no==1){
                                                                                                                                                                                                                                                tolow==0;}else{tolow=1;}
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                case 158:
                                                                                                                                                                                                                                                printf("key_2 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                if(led_no==0){
                                                                                                                                                                                                                                                tolow==0;}else{tolow=1;}
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                case 231:
                                                                                                                                                                                                                                                printf("key_0 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                tolow==1;
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                case 107:
                                                                                                                                                                                                                                                printf("key_3 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                if(led_no==0||led_no==1){
                                                                                                                                                                                                                                                tolow==0;}else{tolow=1;}
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                case 30:
                                                                                                                                                                                                                                                printf("key_5 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                if(led_no==0||led_no==2){
                                                                                                                                                                                                                                                tolow==0;}else{tolow=1;}
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                case 48:
                                                                                                                                                                                                                                                printf("key_6 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                if(led_no==1||led_no==2){
                                                                                                                                                                                                                                                tolow==0;}else{tolow=1;}
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                case 46:
                                                                                                                                                                                                                                                printf("key_7 %s\n",(t.value)?"Pressed":"Released");
                                                                                                                                                                                                                                                for (led_no==0; led_no<4; led_no++){
                                                                                                                                                                                                                                                if(led_no==0||led_no==1||led_no==2){
                                                                                                                                                                                                                                                tolow==0;}else{tolow=1;}
                                                                                                                                                                                                                                                ioctl(led_fd,led_no, tolow);
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                                default:
                                                                                                                                                                                                                                                break;
                                                                                                                                                                                                                                }
                                                                                                                                                                }
}
                                }
close(keys_fd);
return 0;
}

Гаралтын үр дүн:

                                                                   Зураг1. Key_0 дарагсан үед

                                                           Зураг1. Key_1 дарагсан үед

                                                                Зураг2. Key_3 дарагсан үед


Зураг3. Key_7 дарагсан үед

Гэх мэтчлэн харгалзах комбинацаар асаасан.