แสดงบทความที่มีป้ายกำกับ Embedded แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Embedded แสดงบทความทั้งหมด

Slax RTAI Hello Word

 
วันนี้กำลังทำ Term Project เกี่ยวกับ RTAI อยู่ครับ เด๊วจะอัพลงเรื่อยๆ

สร้างไฟล์ hello.c


#include <linux/kernel.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
int init_module(void) // entry point
{
printk("Hello world!\n");
return 0;
}
void cleanup_module(void) // exit point
{
printk("Goodbye!\n");
return;
}

สร้างไฟล์ Makefile


EXTRA_CFLAGS += -I/usr/realtime/include -D_IN_RTAI_
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

เปิด cmd

พิมคำสั่ง make เพื่อคอมไพล์ hello จะได้ไฟล์ชื่อ hello.ko

พิม insmod hello.ko
พิม  lsmod ดูลิส แล้วจะเห็นว่ามี hello.ko ในนั้นด้วย
พิม dmesg จะมี Hello world! อยู่บรรทัดสุดท้าย
พิม rmmod hello.ko จะเป็นการเอา hello.ko ออกจากเคอร์เนล
พิม  lsmod ดูลิส แล้วจะเห็นว่าไม่มี hello.ko แล้ว

การทดสอบ Embedded System

1 ทดสอบการผลิต

2 ทดสอบระหว่างการออกแบบ

3 ทดสอบหลังส่งมอบให้ลูกค้า

ความยากในการทดสอบ Embedded System

1 Embedded system ได้ถูกรวมเข้าไปอยู่ในสภาพแวดล้อมที่ต้องการความปลอดภัยสูง ดังนั้นการทดสอบของ Embedded System เลยมีความคาดหวังว่าต้องดีกว่าของ ระบบที่ไม่ต้องการความปลอดภัยมากนัก

2 การทดสอบ Embedded System ต้องมีการตรวจสอบความถูกต้องของพฤติกรรมทางเวลา ดังนั้นการทดสอบเพียงแค่พฤติกรรมการทำงานของมันไม่เพียงพอ

3 การทดสอบ Embedded System ในสภาพแวดล้อมจริงๆนั้นอาจจะเป็นอันตรายได้


การทดสอบมีสองอย่างคือ 1 ทดสอบการทดงานของอุปกรณ์ 2 ทดสอบสังเกตผลสรุปต่างๆ

Real-time operating systems

 RTOSs  ต้องมีคุณสมบัติสามข้อคือ

  1 พฤติกรรมทางด้านเวลาของ OS ต้องสามารถทำนายได้

  2 OS ต้องจัดการงานทางด้านเวลา และตารางงานได้ ปฎิเสธการ interrupt ได้

  3 OS ต้องทำงานเร็ว


ฟังชั่นที่ต้องมี ใน RTOS-Kernels

 1 การจัดการโปรเซสเซอร์

 2 จัดการหน่วยความจำ

 3 จัดการ timer

 4 จัดการ Task

 5 จัดการงานการสื่อสารภานในและการซิงโคไนซ์

สเปค 4 อย่างที่ต้องการเกี่ยวกับเวลา ของ Embedded System

  ในการออกแบบ embeded system มีความต้องการเกี่ยวกับทางด้านเวลา 4 อย่างคือ

1 วัดค่าได้ -สามารถหาได้ว่าเวลาตั้งแต่เรียกใช้จนเสร็จสิ้้นการทำงานเป็นเท่าไร

2 รู้การ delay -รู้ได้ว่าเกิดการทำงานช้าที่ส่วนใด คือเมื่อโปรเซสแรกทำงานเสร็จแล้วเป็นเวลาเท่าไรก่อนที่โปรเซสที่สองจะทำงาน

3 ระบุการหมดเวลา -มีความสามารถได้การระบุจำกัดเวลาของ state ต่างๆได้

4 สามารถทำงานผ่านในเวลาที่กำหนดได้ -งานบ้างอย่างมีความจำเป็นทางด้านเวลาเช่นการฉัดอินซูลินอัตโนมัติเมื่อเซ็นเซอร์จับได้ว่านํ้าตาลในเลือกตํ่าต้องสามารถฉีดอินซูลินให้ได้ในเวลาที่กำหนด

Embedded system

   ระบบฝังตัว คือระบบที่มีหน่วยประมวลและมีซอฟแวร์ที่ออกแบบมาเพื่อทำงานใดงานหนึ่งที่เจาะจง ไม่สามารถที่จะเอาซอฟแวร์ไปใช้ในงานอื่นได้ โครงสร้างทั่วไปของระบบฝังตัว ประกอบด้วย หน่วยประมวลผล หน่วยรับข้อมูล ส่งข้อมูล  และซอฟแวร์

    ปัจจัยที่นำมาใช้ในการออกแบบ    การออกแบบระบบฝังตัวนั้้นมีปัจจัยดังนี้


ขนาด

การออกแบบระบบฝังตัวนั้นจะมุ่งเน้นไปที่การทำให้มันมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้

พลังงาน

กินพลังงานน้อย

เวลา

ระบบฝังตัวควรมีการทำงานที่รวดเร็ว ยิ่งถ้าเป็น แบบเรียลไทม์แล้วเวลาในการประมวลผล มีความสำคัญอย่างมาก และต้องสามารถคาดคะเนรันไทม์ได้

ราคา

การออกแบบที่ดีนั้นจะต้องใช้ cost ให้ตํ่าที่สุด

จากที่เสนอมาจะเห็นว่าในความต้องการบางอย่างจะมีความขัดแย้งกันอยู่ เช่น การประมวลผลการทำงานที่เร็วนั้นโดยปกติจะต้องกินพลังงานสูง เพราะฉะนั้นผู้ออกแบบจะต้องชั่งใจเองว่าปัจจัยใหนมีความสำคัญกับงานที่ตัวเองออกแบบมากกว่างั้น เพื่อตัดสินใจออกแบบให้ได้สิ่งที่เหมาะสมที่สุด

Embedded system code-size และ run-time

   หลังจากที่อ่าน Real-time Embedded system อยู่ ก็เข้าใจว่าหลังจากที่การเขียนโปรแกรมแล้วต้องทำการ Optimization ซึ่งจะเป็นการลด run-time ลง ซึ่งถือว่าเป็นปัจจัยสำคัญของ real-time แต่ การทำ Optimization ก็ต้องแลกกับ code-size ที่มีขนาดใหญ่ขึ้น ซึ่งก็ต้องมาดูว่าระบบของเรามีพื้นที่พอที่จะเก็บ code ไหม๊ เพราะพื้นที่ที่มากขึ้นย่อมหมายถึง cost ที่เพิ่มขึ้น