PDA

View Full Version : سوال: راهنمایی برای نصب rtlinux روی mini2440



sspardis
دوشنبه 05 دی 1390, 23:08 عصر
سلام دوستان
من میخوام یه نسخه rtlinux رو روی (ARM(mini2440 راه بندازم کسی میتونه کمک کنه؟
روش نصب با نصب لینوکس روی ARMفرق داره؟

Mehran.GH
پنج شنبه 08 دی 1390, 15:04 عصر
سلام دوستان
من میخوام یه نسخه rtlinux رو روی (ARM(mini2440 راه بندازم کسی میتونه کمک کنه؟
روش نصب با نصب لینوکس روی ARMفرق داره؟

یک نسخه مناسب Xenomai است و روش نصب شبیه همان مراحل کامپایل کردن کرنل لینوکس و ایجاد Image و کپی روی SD است بعلاوه مشکلات معمول البته !

درباره mini2440 بنده امتهان نکردم اما در فروم مربوط می توانی پستهایی در این مورد پیدا کنی همانند :

http://www.friendlyarm.net/forum/topic/3032#14050

ظاهرا mini2440 یک مشکلی در استفاده از Timer3 زمانی که می خواهی Xenomai را نصب کنی دارد اما جزییات دقیقتر را در همان فروم باید دنبال کنی.

بنده در FOX Board G20 امتهان کردم که یک برد arm9 برای کاربرد صنعتی است و پردازنده AT91SAM9G20 و مراحل برای دو برد باید شبیه همدیگر باشد .
اگر مراحل نصب در foxboard بدردت می خورد می توانم اینجا بنویسم.

این پروژه بسیار جالب کنترلر CNC را هم نگاه کن و کدهای پروژه را برای دانلود قرار داده و از برد mini2440 استفاده کرده و به احتمال 90 درصد هم لازم داشته یک rtlinux داشته باشه .

این Patch را برای کامپایل کردن کرنل امتهان کن
http://code.google.com/p/miniemc2/downloads/detail?name=miniemc2.patch&can=2&q=

sspardis
پنج شنبه 08 دی 1390, 22:31 عصر
یک نسخه مناسب Xenomai است و روش نصب شبیه همان مراحل کامپایل کردن کرنل لینوکس و ایجاد Image و کپی روی SD است بعلاوه مشکلات معمول البته !

درباره mini2440 بنده امتهان نکردم اما در فروم مربوط می توانی پستهایی در این مورد پیدا کنی همانند :

http://www.friendlyarm.net/forum/topic/3032#14050

ظاهرا mini2440 یک مشکلی در استفاده از Timer3 زمانی که می خواهی Xenomai را نصب کنی دارد اما جزییات دقیقتر را در همان فروم باید دنبال کنی.

بنده در FOX Board G20 امتهان کردم که یک برد arm9 برای کاربرد صنعتی است و پردازنده AT91SAM9G20 و مراحل برای دو برد باید شبیه همدیگر باشد .
اگر مراحل نصب در foxboard بدردت می خورد می توانم اینجا بنویسم.

این پروژه بسیار جالب کنترلر CNC را هم نگاه کن و کدهای پروژه را برای دانلود قرار داده و از برد mini2440 استفاده کرده و به احتمال 90 درصد هم لازم داشته یک rtlinux داشته باشه .

این Patch را برای کامپایل کردن کرنل امتهان کن
http://code.google.com/p/miniemc2/downloads/detail?name=miniemc2.patch&can=2&q=

ممنون از کمکتون
برای پروژه ای که گفتید لینک نذاشتید و اینکه قبل از نصب xenomai روی mini2440 نصبش رو روی لینوکس امتحان کردم که بدون مشکل اجرا شد ولی بعد از ریست کردن سیستم این خطا رو داد:
unable to mount root fs on unknown block(0,0)
و این خطا:
some program might be trying access hardware directly
و سیستم بالا نیومد
شما میدونید مشکل ازکجا بوده؟
بازم ممنون

Mehran.GH
جمعه 09 دی 1390, 00:38 صبح
ممنون از کمکتون
برای پروژه ای که گفتید لینک نذاشتید و اینکه قبل از نصب xenomai روی mini2440 نصبش رو روی لینوکس امتحان کردم که بدون مشکل اجرا شد ولی بعد از ریست کردن سیستم این خطا رو داد:
unable to mount root fs on unknown block(0,0)
و این خطا:
some program might be trying access hardware directly
و سیستم بالا نیومد
شما میدونید مشکل ازکجا بوده؟
بازم ممنون

unable to mount root fs on unknown block(0,0)

این پیغام به این علت است که در فایل grub.conf مسیر تعریف شده برای Kernel تغییر کرده (بعد از نصب xenomai ) , دنبال کرنل در پارتیشن 0 می گردد در حالی که کرنل قبلا در پارتیشن دیگری نصب شده بوده.

(اگر از Ubunto استفاده می کنی که نام این فایل را در نسخه های جدید تغییر داده اند باید در اینترنت سرچ کنی )

این خط kernel /boot/giraffen_kernel_nr1 root=/dev/sda0 تغییر یافته که sda0 را باید به پارتیشنی که لینوکس را قبلا در ان نصب کردی تغییر بدهیsda3 یا sda2.


پیشنهاد می کنم تمرکز کار را به منظور آماده کردن کرنل و کامپایل برای استفاده از میکروکنترلر جهت دهی کنی , در نسخه دسکتاپ باید مشکلاتی را برای نصب حل کنی که نهایتا بدردت نمی خورد چون هدف پروژه نصب روی میکرو است نه دسکتاپ.

زمانی که بخواهند برای میکروکنترلر کرنل و xenomai را کامپایل کنند از ابزار debootstrap استفاده می کنند تا Initial Root File Store را تعریف کنند ودر نتیجه این مشکلی که الان باهاش برخورد کردی یعنی تغییر مسیر کرنل در فایل grub.conf , آنجا پیش نمی آید.

http://code.google.com/p/miniemc2/

sspardis
جمعه 09 دی 1390, 10:58 صبح
پیشنهاد می کنم تمرکز کار را به منظور آماده کردن کرنل و کامپایل برای استفاده از میکروکنترلر جهت دهی کنی , در نسخه دسکتاپ باید مشکلاتی را برای نصب حل کنی که نهایتا بدردت نمی خورد چون هدف پروژه نصب روی میکرو است نه دسکتاپ.



من نیاز دارم از صحت عملکرد یه کد زبان سی روی یه سیستم realtime مطمئن بشم که باید این کد رو روی دسکتاپ بزنم شما پیشنهاد دیگه ای دارین؟

با تشکر

Mehran.GH
جمعه 09 دی 1390, 23:59 عصر
من نیاز دارم از صحت عملکرد یه کد زبان سی روی یه سیستم realtime مطمئن بشم که باید این کد رو روی دسکتاپ بزنم شما پیشنهاد دیگه ای دارین؟

با تشکر

برای تست کد از نظر منطقی که باید انجام دهد می توان روی دسکتاپ تست کرد اما باید توجه داشته باشی اگر قرار است نهایتا کدی روی سیستم RT در میکروکترلر درست کار کند بعلاوه بقیه امکانات میکرو مثل پورتها ,تایمر,... در ان صورت مشکلاتی که در یک پردازنده x86 و لینوکس دسکتاپ مواجه می شوی بسیار متفاوت هست از مشکلات یک پردازنده arm9

یک مساله مهم در سیستم RT موضوع latency است بطور مثال در یک سیستم کنترلی ممکن است نیاز باشد هر 100ms یک ترانزیستور از طریق یک پین I/O روشن و خاموش شود و بسیار مهم است که این 100ms دقیق باشد آنگاه در چنین پروژه ای با نصب یک RT در کرنل لینوکس می توان تضمین کرد که برای Task های با الویت بالا سیستم یک latency دقیق و ثابت مثلا 100us دارد.در حالی که اگر همین کد کنترلی را در یک دسکتاپ تست کنی اصولا محدودیتهای Arm9 را برخورد نمی کنی و latency در x86 هم که در هر صورت غیر دقیق است.

به عنوان طراح سیستم embedded باید ببینی چه نیاز مندی در تعریف پروژه آمده و بر اساس همان طراحی کنی , مثلا اگر پردازش سیگنال بخواهی انجام دهی شاید latency دقیق خیلی نیاز نباشد بلکه سرعت پردازش بالاتر نیاز باشد انگاه نصب RT کمکی نمی کند.
( نصب RT سیستم را سریعتر نمی کند بلکه (اندکی) هم کندتر می کند مزیت مهم آن این است که latency ثابتی خواهی داشت )

بعد هم که کد تست شده باشد و درست کار کند باید امکانات جانبی مثل پورتها, تایمر, sd card و.... هم درست کارکنند و همه این داستانها را فقط زمانی می توانی اطمینان داشته باشی که نرم افزار را برای میکروکنترلر تهیه کرده باشی .

به هر حال موضوعی که در کامنت قبلی نوشتم فقط یک پیشنهاد بود و تصمیم نهایی که چه استراتژی مناسبتر است برای پیشبرد پروژه تصمیمی است که فقط خودت باید بگیری.