Sin210 сургалтын хавтангын PCB&Schematic (CPU-DISPLAY)
Sunday, May 15, 2016
Thursday, April 28, 2016
"Kirchoff’s Electric Society" -team /J.ES321/ (J.ES13D481-D.Chinbat, J.ES12D017-B.Dashnyam J.ES12D034-N.Haliagzam J.ES12D026-G.Nyamgavaa)
- Виртуал машиныхаа shared folders – ийг Always enabled болгож Add дарна.
- Next дарж Host Path дээр шэйрлэх фолдэрийнхээ замыг зааж өгнө. Дараа ньNext дарна.
- Enable this share –ийг сонгоод Finish дарна. Ингээд фолдэр шэйрлэгдлээ.
- mnt/hgfs/share дотор ls командыг бичсэнээр шэйр фолдэр доторх файлууд харагдаж байна.
Хэрэглэгчийн давуу эрхийг тохируулах буюу root болгох
- Sudo –s команд бичсэнээр root болно.
- Sudo gedit /etc/gdm/custom.conf командыг бичихэд гарч ирэх цонхон дээр дараах кодыг бичсэнээр хэрэглэгчийн давуу эрх үүснэ.
Cross compiler суулгах
- Шэйр фолдэр дотор байгаа 4.3.2.tar.gz cross compiler –ийг usr/local/arm/ -руу хуулна.
- Usr/local/arm/ дотор tar zxvf 4.3.2.tar.gz командыг бичсэнээр файлыг задлана.
- Gedit .bashrc командаар гарч ирсэн цонхонд доорх зургийн дагуу замыг зааж өгөх команд бичнэ.
- Arm-linux-gcc –v командаар тухайн Ubuntu –д cross compiler –ийн ямар хувилбар суусан болохыг харж болно.
Uboot ачааллах
- Шэйр фолдэр дотор байгаа uboot_smdkv210.tar.gz –ийг Android/ -руу хуулна.
- Android/ дотор tar zxvf uboot_smdkv210.tar.gz командыг бичсэнээр файлыг задлана.
- Android/uboot_smdkv210/ дотор make хийнэ.
- Make хийхэд үүсэх u-boot.bin файлыг шэйр фолдэрт хуулна.
kernel ачаалах
- Шэйр фолдэр дотор байгаа kernel_smdkv210.tar.gz –ийг Android/ -руу хуулна.
- Android/ дотор tar zxvf kernel_smdkv210.tar.gz командыг бичсэнээр файлыг задлана.
- Android/kernel_smdkv210/ дотор make zImage командыг бичсэнээрzImage үүснэ.
- zImage –ийг шэйр фолдэрт хуулна.
Файл систем ачааллах
- Шэйр фолдэр дотор байгаа myfs.tar.gz –ийг Android/ -руу хуулна.
- Android/ дотор tar zxvf myfs.tar.gz командыг бичсэнээр файлыг задлана.
- Шэйр фолдэр дотор байгаа mkyaffs2image –ийг Android/ -руу хуулна.
- Mkyaffs2image файлын тусламжтай ./mkyaffs2image myfs/sys.imgкомандаар system.img буюу sys.img –ийг үүсгэнэ. Үүссэн sys.imgфайлыг шэйр фолдэрт хуулна.
Хэрэглэгчийн давуу эрхийг тохируулах буюу root болгох
- Sudo –s команд бичсэнээр root болно.
- Sudo gedit /etc/gdm/custom.conf командыг бичихэд гарч ирэх цонхон дээр дараах кодыг бичсэнээр хэрэглэгчийн давуу эрх үүснэ.
Cross compiler суулгах
- Шэйр фолдэр дотор байгаа 4.3.2.tar.gz cross compiler –ийг usr/local/arm/ -руу хуулна.
- Usr/local/arm/ дотор tar zxvf 4.3.2.tar.gz командыг бичсэнээр файлыг задлана.
- Gedit .bashrc командаар гарч ирсэн цонхонд доорх зургийн дагуу замыг зааж өгөх команд бичнэ.
- Arm-linux-gcc –v командаар тухайн Ubuntu –д cross compiler –ийн ямар хувилбар суусан болохыг харж болно.
Uboot ачааллах
- Шэйр фолдэр дотор байгаа uboot_smdkv210.tar.gz –ийг Android/ -руу хуулна.
- Android/ дотор tar zxvf uboot_smdkv210.tar.gz командыг бичсэнээр файлыг задлана.
- Android/uboot_smdkv210/ дотор make хийнэ.
- Make хийхэд үүсэх u-boot.bin файлыг шэйр фолдэрт хуулна.
kernel ачаалах
- Шэйр фолдэр дотор байгаа kernel_smdkv210.tar.gz –ийг Android/ -руу хуулна.
- Android/ дотор tar zxvf kernel_smdkv210.tar.gz командыг бичсэнээр файлыг задлана.
- Android/kernel_smdkv210/ дотор make zImage командыг бичсэнээрzImage үүснэ.
- zImage –ийг шэйр фолдэрт хуулна.
Файл систем ачааллах
- Шэйр фолдэр дотор байгаа myfs.tar.gz –ийг Android/ -руу хуулна.
- Android/ дотор tar zxvf myfs.tar.gz командыг бичсэнээр файлыг задлана.
- Шэйр фолдэр дотор байгаа mkyaffs2image –ийг Android/ -руу хуулна.
- Mkyaffs2image файлын тусламжтай ./mkyaffs2image myfs/sys.imgкомандаар system.img буюу sys.img –ийг үүсгэнэ. Үүссэн sys.imgфайлыг шэйр фолдэрт хуулна.
SIN210 хавтангийн тухай
- SIN210 хавтан нь Android, WinCE, Linux үйлдлийн систем дэмжин ажиллах боломжтой.
- Sin210 хавтаны техникийн үзүүлэлтийг хавсралт хэсэгт багтаасан ба бүрдэл хэсгүүд
- Линукс системд хөрвүүлсэн үндсэн код шаардлагатай байдаг.
Линукс системийг бүрдүүлдэг эдгээр гурван файлийн эхнийх нь uboot.bin, дараа нь төрөл бүрийн драйверуудыг хөрвүүлж линукс кернелийг тохируулах zImage файл, файлын системийг удирдах system.img юм.
- Ubuntu үйлдлийн систем дээр linux-г сompile хийх
- Windows болон ubuntu үйлдлийн системийн хооронд файл чөлөөтэй солилцохын тулд ubuntu-г root хэрэглэгчээр тохируулах алхамыг хийх хэрэгтэй.
sudo –s
sudo passwd
root хэрэглэгчийн нэр, нууц үг үүсгэх.
sudo gedit /etc/gdm/custom.conf
custom.conf файл нээж доорх тохиргоог бичнэ.
[daemon]
TimedLoginEnable=true
AutomaticLoginEnable=true
TimedLogin=root
AutomaticLogin=root
TimedLoginDelay=30
Restart хийснээр root эрхээр нэвтрэнэ.
Дарагийн алхам нь cross compiler суулгах:
Arm хавтас үүсгэх:
cd /usr/local/
mkdir arm
Үүсгэсэн /usr/local/arm хавтасд \..\arm-linux-gcc\4.3.2.tar.gz файл хуулах.
Cross compiler задлах:
tar 4.3.2.tar.gz
Cross compiler замчлах:
cd ~
gedit .bashrc
.bashrc цонх дээр PATH=/usr/local/arm/4.3.2/bin:$PATH
export PATH нэмж бичнэ.
Хувьсагч дахин ачаалах:
source .bashrc
Cross compiler шалгах:
arm-linux-gcc –v
- Суулгасан сross compiler ашиглан uboot source-г сompile хийх:
mkdir Sin210
uboot_smdkv210.tar.gz файлыг задлах:
tar zxvf uboot_smdkv210.tar.gz
Сross compiler-р u-boot.bin файл үүсгэх:
cd uboot_smdkv210
make smdkv210single_config
make
u-boot.bin файл үүссэн байдал
- Суулгасан сross compiler ашиглан kernel source-г сompile хийх:
tar zxvf kernel_smdkv210.tar.gz
cd uboot_smdkv210
make zImage
zImage файл үүссэн байдал
- Системийн .img файлыг mkyaffs2image ашиглан үүсгэх:
Tar zxvfmyfs.tar.gz
Sin210 хавтасд linux2.6.34\tools\mkyaffs2image tool-г хуулаад system.img үүсгэх
./mkyaffs2image myfs system.img
- Дээрх үйлдлүүдийн үр дүнд uboot.bin, zImage, system.img файлууд үүснэ.
- Файлын нэр Байрлах хаяг Хэмжээ
zImage 0x100000-0x600000 5MB
fs 0x600000-END 250MB
NandFlash-д файл хадгалах зайн хуваарилалт
- Sin210 хавтан дээр uboot.bin, zImage, system.img файлуудыг шарах:
- Эхлэдэг горимыг sd card ашиглан гүйцэтгэхдээ uboot file.г хуулсан байх шаарадлагатай. Serial cable болон USB OTG cable-г холбоно.
- Үүний дараа Sin210 хавтанг асааж 3 секундын дотор товч дарж сериал терминалыг эхлүүлнэ.
dnw c0008000 командаар uboot.bin файлыг USB OTG-р дамжуулна.
USB OTG cable-р дамжуулах файлыг сонгох
nand write c0008000 0 100000 командаар NandFlash санах ойд uboot.bin файлыг бичих.
dnw c0008000 командаар zImage файлыг USB OTG-р дамжуулна.
- USB OTG cable-р дамжуулах system.img файлыг сонгох
- nand write.yaffs c0008000 600000 c1bae00 командаар NandFlash санах ойдsystem.img файлыг бичих.
- Үүний дараа NandFlash-аас эхлэх горимд тохируулж дахин эхлүүлнэ. Ингэснээр эмбэддэд линукс ажиллахад бэлэн болно.
LED удирдах
Driver бичих
- kernel_smdkv210/drivers/char дотор gedit led.c командыг бичихэд led.cгэсэн file үүснэ.
- led.c дотроо Writing LED Drivers- ийн кодыг хийгээд хадгална.
- Дараа нь kernel_smdkv210/drivers/char дотроо gedit Makefile гэж бичээд гарч ирсэн кодон дээр led.o-ыг нэмээд хадгална.
- Дараа нь kernel_smdkv210 folder дотроо make zImage командыг бичнэ
- Ингэснээр LED-н Driver-тай zImage үүснэ.
- gedit led_test.c буюу led_test.c текст file үүсгээд LED Writing Application-ын кодыг хийгээд хадгална.
- Дараа нь gedit Makefile буюу Makefile-ыг үүсгээд LED Writing Application кодыг хийж хадгална.
- Үүссэн led_test Application file-аа mkyaffs2image/myfs/usr/sbin folder дотор copy paste хийнэ.
- Дараа нь mkyaffs2image folder дотроос ./mkyaffs2image myfs/ system.img командыг бичсэнээр system.img буюу File System үүснэ.
- Үүссэн system.img file-aa DNW программаар board-руугаа шараад Reset хийнэ.
- Үйлдэлийн систем бүрэн ачаалласны дараа DNW дээрээ Enter дархад root эрхээр нэвтэрнэ. Root-р нэвтэрсэний дараа led_test 1,2,3,4 on/off командаар led-үүдээ удирдана.
#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;
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)
{
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("HOME %s\n",(t.value)?"Pressed":"Released");
break;
case 139:
printf("MENU %s\n",(t.value)?"Pressed":"Released");
break;
case 158:
printf("ESC %s\n",(t.value)?"Pressed":"Released");
break;
case 231:
printf("CALL %s\n",(t.value)?"Pressed":"Released");
break;
case 107:
printf("END %s\n",(t.value)?"Pressed":"Released");
break;
case 30:
printf("A %s\n",(t.value)?"Pressed":"Released");
break;
case 48:
printf("B %s\n",(t.value)?"Pressed":"Released");
break;
case 46:
printf("C %s\n",(t.value)?"Pressed":"Released");
break;
default:
break;
}
}
}
}
close(keys_fd);
return 0;
}
Дараа нь gedit makefile буюу makefile-ыг үүсгээд доорх кодыг copy paste хийгээд хадгална.
CROSS = arm-none-linux-gnueabi-
CC = $(CROSS)gcc
AR = $(CROSS)ar
STRIP = $(CROSS)strip
LDFLAGS +=
EXEC = button_test
OBJS = key.o
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBM) $(LDLIBS) $(LIBGCC) -lm
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
- Дээр үүссэн 2 file-ын байгаа газар make командыг бичиснээр Application file үүснэ.
QT application
- Дараах формтой QT application бичье. SW1 - SW8 хоорондох товчыг дарснаар тухайн дарагдсан товчинд харгалзах LED асах бөгөөд хэддүгээр LED ямар төлөвтэй байгаа нь тус тусын TextLabel - уудад харагдана.
- key.c дээр S1-S8 товч дарагдсан эсэхийг шалгаж товч дарагдсан үед хэвлэгдэх мэдээллийн кодыг бичнэ.
- led.c код нь 0 бол led асаах, 1 бол led унтраах ба товчнуудын утгыг уншиж led -ийг асаана эсвэл унтраана.
- main.cpp -д QT application -ы эх функц агуулагдана.
- QT application болон board -ны key, led -үүдийг холбох код:
- Case дотор label -үүдэд текстэн утга онооно.
- void MainWindow :: on_btn(1-ээс 8_clicked() командаар 1 -ээс 8 дугаар button дарагдсан үед.
- Доор энэхүү QT application -д хэрэглэгдэх толгой файлуудын кодыг харуулсан байна.
- Энэ application -ны design -ы дэвсгэр болох зургыг дараах байдлаар оруулж өгнө.
Aчааллах үед дүрслэх лого
- 800x480 хэмжээтэй PNG зураг бэлдэнэ.
- sudo apt-get install netpbm командыг бичнэ.
- Rm kernel_smdkv210/drivers/video/logo/logo_linux_clut224*. *командаар logo_linux_clut224*.* файлуудыг устгана.
- linuxlogo.png файлыг Android/ дотор хуулна.
- pngtopnm linuxlogo.png > linuxlogo.pnm
- pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
- pnmtoplainpnm linuxlogo224.pnm > logo_linux_clut224.ppm командыг бичсэнээр logo_linux_clut224.ppm файл үүснэ.
- logo_linux_clut224.ppm файлыгAndroid/kernel_smdkv210/drivers/video/logo/ дотор хуулна.
- Android/kernel_smdkv210/ дотор make zImage командыг бичнэ. Ингэснээр zImage үүснэ.
Subscribe to:
Posts (Atom)