Picproje Elektronik Sitesi

BİLGİSAYAR => Linux => Konuyu başlatan: demket - 04 Nisan 2012, 12:07:28

Başlık: Linux cortex M3 - M4
Gönderen: demket - 04 Nisan 2012, 12:07:28
Merhaba arkadaşlar,

En basit haliyle oluşturabileceğimiz linux u Cortex M3 veya M4 üzerine kurabilir miyiz?

Kolay gelsin,
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: Tagli - 04 Nisan 2012, 12:27:10
Şu başlığı (https://www.picproje.org/index.php/topic,38564.0.html) okuduktan sonra insan "Neden olmasın ki?" diyor...

Ama pratikte, MMU'su olan işlemcilerle kullanılır. Hafıza ihtiyacını da haricen karşılamak gerekir. Linux çalıştıracak bir kart tasarımına girmeden önce, hazır bir kart üzerinde uygulama yaparak bu işi öğrenmek şart.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: NecroCapo - 04 Nisan 2012, 12:42:21
Alıntı yapılan: Tagli - 04 Nisan 2012, 12:27:10
Şu başlığı (https://www.picproje.org/index.php/topic,38564.0.html) okuduktan sonra insan "Neden olmasın ki?" diyor...

Ama pratikte, MMU'su olan işlemcilerle kullanılır. Hafıza ihtiyacını da haricen karşılamak gerekir. Linux çalıştıracak bir kart tasarımına girmeden önce, hazır bir kart üzerinde uygulama yaparak bu işi öğrenmek şart.

Peki Tagli hocam bu MMU ne oluyor ? Eğer MMU'dan kastınız memory protection unit (MPU) ise; STM32F4 Discovery kitinde kullanılan STM32F407VG entegresinin datasheetinde MPU olduğunu söylüyor. Fakat henüz STM32F4 kullanarak linux çalıştıran görmedim internette. Belki de yeni ürün olduğundan, birileri uğraşıyordur hala? :)
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: demket - 04 Nisan 2012, 12:43:13
Tavsiye edebileceğiniz bir kart var mı?

M3 - M4 üzerinde deneme yapan varsa deneyimlerini aktarırsa sevinirim. Elimde stm32f407vg discovery ve ti-lm3s9b92 var.

Buildroot ile bir imaj oluşturdum. Gerçi uygun chipdef lemi oldu emin değilim. Şimdi sıra bu imajı kitlerle kullanmak ama nasıl. bootloader a gerek varmı. imajı nereye atacağız. root dosya yapısını ne yapacağız.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: yamak - 04 Nisan 2012, 12:48:02
Normalde CM3-CM4 linux koşturmak için uygun işlemciler değildir. Yukarıda @Tagli'nin verdiği linkte adam özel bir yöntem kullanmış.8 bitlik mcu'yu sanki 32 bitlikmiş gibi çalıştırdı. Ve bu bu yaptığı şeyi ilk defa orada gördüm. Zaten yorumları okursanız yaptığı şeyin ne kadar sıradan olmadığını anlayacaksınız.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: Tagli - 04 Nisan 2012, 13:09:35
MMU: Memory Management Unit.
Her process (Türkçe'sinin terim olarak ne olduğunu unuttum, görev olabilir) sistemde sadece kendisinin var olduğunu sanır. Bunların çalışma sırasında kullandığı adresler kendilerine özgüdür ancak gerçek fiziksel adresler değildir. MMU process bazındaki sanal adresleri gerçek fiziksel adreslere çeviren donanımsal bir birimdir.

MPU'nun ne olduğunu bilmiyorum. ARM'ın bazı işlemcilerine özgü bir birim olabilir. Belki de aynı şeydir ama öyle olsa farklı isim vermezlerdi diye sanıyorum.

buildroot neredeyse herşeyi kendisi oluşturuyor. Önce kendisine bir çapraz derleyici derliyor (kaynak koddan), daha sonra kernel'i çekip derliyor, ve gerekli diğer programları ve kütüphaneleri de kaynak kodlarını çekip derleyerek root file system'i oluşturuyor. Yanılmıyorsam istenildiğinde bootloader da çekip derliyor (u-boot sanırım). buildroot'un bir kötü yanı, her şeyi otomatik yaptığı için öğrenme üzerinde pek katkısı olmaması. Yine de ilk denemeler için uygun. Ben de bununla başlamıştım.

Bootloader, kernel ve root file system (rootfs) tercihlere göre çok farklı yerelere yüklenebilir. Örneğin hepsini bir SD karta koyup çalıştırılabilir. Popüler kartlarla veya qemu isimli emülatör ile başlanmasını öneririm. mini2440, Beagleboard(xM), Beaglebone, Raspberry Pi gibi kartlar popüler oldukları için bunlarla ilgili kaynak bulmak kolay. Beagleboard ve Beagleboard xM, qemu ile emüle edilebiliyor. qemu ile çalışırken bootloader olmasıne gerek yok.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: memo333 - 04 Nisan 2012, 13:43:09
Bir-iki örnek

ST : Getting started with uClinux™ for STM32F10x high-density devices

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00242717.pdf (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00242717.pdf)

Linux for Cortex-M

http://www.emcraft.com/index.php/home (http://www.emcraft.com/index.php/home)
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: OptimusPrime - 04 Nisan 2012, 14:08:32
m3 ve m4 mikrokontrolcü uygulamaları için geliştirilmiş modellerdir. işletim sistemleri için kullanılanlar ise application processors olarak geçer. bunlara bakabilirsin.

fakat 8 bitlik avr de linux çalışıyorsa cortex m serisindede çalışır heralde... ;D
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: demket - 04 Nisan 2012, 17:20:32
16 MByte SRam ve 8MByte Nor Flash olursa olacakmış gibi görünüyor. Ne yapabiliriz bu hususta?
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: gambit1244 - 04 Nisan 2012, 17:42:41
arkadaşlar linüx ün cortex  m3 m4 lerde kullanılmasının temel amacı nedir
bu konuda hiç bilgim yok

mesela linux hangi alanlarda işi kolaylaştırır

yada neler linux olmazsa yapılamaz?
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: sakkan - 04 Nisan 2012, 17:53:57
önce bi bootloader derlemeleri lazım m3 ve m4 için sonrası gelir inşallah.

linux bir seçimdir. ücretsizdir. açık kaynak kodludur kendine göre değişiklikler yapabilirsin. stabildir. işletim sistemi  ve böyle ihtiyaçların varsa linuxu seçebilirsin.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: Tagli - 04 Nisan 2012, 18:03:27
Ben Linux'un real time uygulamalardan ziyade, yüksek seviyeli ve hesap yükü çok olan algoritmalar için kullanılmasının daha faydalı olacağını düşünüyorum. Örneğin, insansız bir hava taşıtında, taşıtın dengede kalması ve bir yöne yönelmesi mikrodenetleyici ile sağlanırken, görüntü işleme, iletişim ve karar verme gibi eylemler Linux çalıştıran bir gömülü bilgisayarda yapılabilir. Bu bilgisayar uygun şekilde mikrodenetleyiciyi yönetir.

Bootloader derlemek ilk etapta gerekmeyebilir. Gömülü sistemlerde sıklıkla kullanılan u-boot'u, desteklediği pek çok sistem için hazır derlenmiş olarak bulmak mümkün.

Gömülü Linux öğrenme sürecini bir işlemci veya kart ile sınırlamayın. Olayın bunlarla doğrudan bir ilgisi yok. Az önce bir başlıkta daha bahsettim, burada da yazayım: Nazım Koç'un "Gömülü Linux Sistemleri" adlı kitabını alıp okumanızı tavsiye ederim.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: gambit1244 - 04 Nisan 2012, 20:45:49
Alıntı yapılan: Tagli - 04 Nisan 2012, 18:03:27
Ben Linux'un real time uygulamalardan ziyade, yüksek seviyeli ve hesap yükü çok olan algoritmalar için kullanılmasının daha faydalı olacağını düşünüyorum. Örneğin, insansız bir hava taşıtında, taşıtın dengede kalması ve bir yöne yönelmesi mikrodenetleyici ile sağlanırken, görüntü işleme, iletişim ve karar verme gibi eylemler Linux çalıştıran bir gömülü bilgisayarda yapılabilir. Bu bilgisayar uygun şekilde mikrodenetleyiciyi yönetir.

Bootloader derlemek ilk etapta gerekmeyebilir. Gömülü sistemlerde sıklıkla kullanılan u-boot'u, desteklediği pek çok sistem için hazır derlenmiş olarak bulmak mümkün.

Gömülü Linux öğrenme sürecini bir işlemci veya kart ile sınırlamayın. Olayın bunlarla doğrudan bir ilgisi yok. Az önce bir başlıkta daha bahsettim, burada da yazayım: Nazım Koç'un "Gömülü Linux Sistemleri" adlı kitabını alıp okumanızı tavsiye ederim.


hocam peki android ile linux arasındaki fark nedir
androidin linüx tabanlı olduğunu okumuştum
android yüklü bir bilgisayardada accelerometer gyro wireless blutooth modul gps vs vs hepsi var
mesela cortex m4 ile android kullanılabilirmi
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: SpeedyX - 04 Nisan 2012, 21:25:44
İşlemcide MAM modülü varsa işletim sistemi çalıştırmaya elverişsizdir. Tagli nin da dediği gibi işletim sistemleri MMU mantığına göre yazılmışlardır, tüm PC işlemcileri de aynı sıralı indexleme modüllerini barındırırlar.
Birileri MAM için Linux yazarsa ozaman çalıştırılabilir fakat genelde MAM barındıran işlemciler düşük hızda çalışır MMU olanlar daha yüksek hızlarda çalışır. Düşük hızda işletim sisteminin bir esprisi kalmayabilir. O yüzden bazı işlemciler işletim sistemi koşturmak için tasarlanırlar, bazıları farklı amaçlar için...
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: demket - 04 Nisan 2012, 21:31:53
Doğrdur. Fakat 200 Mhz. hızında çalışan ve üzerinde linux koşturan işlemciler var. 168 Mhz lik STM32F407VG bu işi yapabilir mi diye sormaktan kendimi alamıyorum. Hatta ST nin STM3220G-EVAL bordu için uClinux olması lazım ki bu kitte M3. Grafik içeren uygulamalarda M3 ve M4 zor. Fakat minimal bir linux oluşturduğumuzu düşünelim. Üzerinde de küçük bir web server ve veritabanı mesela sqlite(boyutuna bakmadım). Ölçtüğümüz ısı değerlerini (dahili olan vb...) SDcard a yazıyoruz. Bu verileri de webden raporluyoruz. Bu işlemi linux üzerindeki hazır servisleri kullanarak yapmak ne kadar zor olabilir. Bunu bir saat içinde yapacak çok kişi var. Oysa aynı işi işletim sistemi olmaksızın elimizdeki kitlerin örneklerine bakarak kaç kişi yapabilir. :) Yapan çok ta acaba buraya mı yazmıyor diye düşünmüyor da değilim.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: demket - 04 Nisan 2012, 22:56:23
Soruyu hatırlatayım. SRam hususunda ne yapabiliriz. Hangi ram piyasada bulunur nasıl bağlanır?
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: sakkan - 05 Nisan 2012, 09:00:06
Alıntı yapılan: Tagli - 04 Nisan 2012, 18:03:27

Bootloader derlemek ilk etapta gerekmeyebilir. Gömülü sistemlerde sıklıkla kullanılan u-boot'u, desteklediği pek çok sistem için hazır derlenmiş olarak bulmak mümkün.


Derlemek derken de en son u boot u cm3 için derlemeye uğraşıyorlardı. Halletmişler mi?
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: controller - 05 Nisan 2012, 09:53:14
MMU bulunmayan işlemcilerde uclinux çalıştırabilirsin.

MMU nun iki temel görevi vardır, virtual memory ve memory protection.

STM de bulunduğunu söylediğiniz birim sadece MPU (memory protection unit) dur, virtual memory işlemlerini yerine getirecek bir birim yoktur (donanım olarak).

AVR ile linux çalıştıran arkadaşın yaptığı gibi donanım olarak MMU nun yaptığı işi ben yazılım ile yaparım diyorsanız linux çalıştırabilirsiniz ancak çok yavaş çalışacaktır.

Konuyu daha iyi anlamak için virtual memory yi araştırabilirsiniz.

Örnekle açıklamak gerekirse, pc de çalışan her program bizim mikrodenetleyicilerde yazdığımız sıfırıncı adresten başlayan programlar gibi çalıştırılır ancak gerçekte fiziksel hafızada bu bellek bölgesi tek bir bütün değil parça parçadır. Hatta bu bellek bölgesini bir kısmı fiziksel hafızadan (RAM) değil diskten karşılanır. İşte bu çalışan her programın tek bir bütün hafıza bloğunda gibi çalıştırılmasını MMU sağlar. MMU olmasaydı mikrodenetleyicilerde olduğu gibi aynı anda sadece bir adet program çalışabilirdi.

Başlık: Ynt: Linux cortex M3 - M4
Gönderen: z - 05 Nisan 2012, 11:43:12
Virtual memory control ARM işlemcilerde kolayca yapılabilecek iş ancak burada tüm iş derleyiciye düşüyor.

Tüm memory erişim komutlarında, derleyici hedefi  Rn+Rm şeklinde adresleyen komutlarla yaptığında ARM işlemci 80X86 işlemcilerdeki segment register + Adres register erişim şekline benzer hale gelmiş olur. Bu durumda Rn segmenti Rm de adresi gösterir.

Yazılan her programda adresler 0 dan başlarken işletim sistemi sadece segmentleri ayarlar.

Belki de Keil'de bu mümkündür.
Başlık: Ynt: Linux cortex M3 - M4
Gönderen: NecroCapo - 26 Eylül 2012, 11:01:55
Cortex M3/M4 üzerinde Linux (ucLinux) :

Link: http://electronicdesign.com/article/embedded/practical-advice-running-uclinux-cortexm3m4-74443 (http://electronicdesign.com/article/embedded/practical-advice-running-uclinux-cortexm3m4-74443)
GitHub: https://github.com/EmcraftSystems (https://github.com/EmcraftSystems)  / ucLinux ve uBoot için