 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
valekovski Član

Pridružen-a: Sob 18 Feb 2012 20:34 Prispevkov: 11 Aktiv.: 0.07
|
Objavljeno: Sre Avg 15, 2012 6:19 pm Naslov sporočila: |
|
|
Hej
Kul, hvala! Sam sem počel isto ja, najbolj zoprna so tale mapiranja registrov v pomnilnik, ker jih je pač veliko.. No uspelo mi je krmilit ledico, potem sem pa obupal. Problem je bil ravno to, da sem bil še preveč nub da bi hkrati pazil na to kaj programiram in kako povežem hardware, verjetno bi mimogrede vse skup skuril
Bare-metal C je pa dost lažje + podpore je že cel kup, se dobi na atmelovi strani brezplačno, samo registracija je potrebna. Tako da, morda bi bilo še najlažje tisto portirati na linux, pa se morda napiše funkcijo, ki avtomatsko mapira naslove registrov.. Nekaj takega. Se bom igral, ko diplomiram, če mi ne bo treba delati dvanajst ur na dan, [slovenščina je zame švedska vas] kot mora večina
Hvala za info! Mam pa še eno vprašanje, ko mi že takrat ni bilo jasno, ko sem se igral.. Zakaj zaboga se offset definira kot PIO_BASE_ADDR &~MAP_MASK. Zakaj je MAP_MASK negiran? Oz. zakaj je sploh potrebno masko uporabit.. Če bi bil offset večji kot je PAGE_SIZE, se pravi kot modulo? Pa zakaj se maska negira samo ko mapiramo BASE_ADDR in ne ko mapiramo specifične registre..
Pa mimogrede, če se ne motim, lahko na ene parih pinih dosežemo tudi 5V napetosti, če napajamo z adapterjom. Razen krmilna logika ostaja 3.3V, more pa pisat nekje v dokumentaciji, kateri pini imajo potem 5V.
LP, Val
PS: Lol, kaj je fora s [slovenščina je zame španska vas], grammar nazi much  |
|
Nazaj na vrh |
|
 |
Mbili Član

Pridružen-a: Tor 03 Jan 2012 20:14 Prispevkov: 34 Aktiv.: 0.21 Kraj: Ljubljana
|
Objavljeno: Čet Avg 16, 2012 5:26 pm Naslov sporočila: |
|
|
Pri navideznem naslovu moraš upoštevat, da je razdeljen na del naslova znotraj strani (spodnji biti naslova - pri Linux-u 12 bitov -> 4k = 4096) in preostali del (zgornjih 20 bitov pri ARM-u), ki se preslikuje (spodnji del se ne).
Če pogledaš še enkrat "mušter", ki sem ga poslal, je odmik (offset) določen z (PIO_BASE_ADDR+odmik_registra) & MAP_MASK. Gledati moraš vrstice s komentarjem //assign address!
S PIO_BASE_ADDR &~MAP_MASK je pa določeno zgornjih 20 bitov, ki se preslikajo preko funkcije mmap.
FRI-SMS jev mikrokrmilnik ni "odporen" na 5V. Seznam Atmelovih čipov, ki so, imaš na tem naslovu.
LP Mbili
PS: Španska vas |
|
Nazaj na vrh |
|
 |
kotar Neznanec

Pridružen-a: Tor 09 Okt 2012 21:38 Prispevkov: 2 Aktiv.: 0.01 Kraj: Ljubljana
|
Objavljeno: Sob Feb 23, 2013 3:36 pm Naslov sporočila: |
|
|
Živjo, si bom malo sposodil temo.
Želim prevest preprost kernel modul. Dol sem potegnil src kernela 2.6.38 in ga patchal s patchem, ki je na fri-sms strani. Imam tudi toolchain, ki sem ga dobil z buildroot-om. Naredil sem Makefile:
Koda: |
obj-m=drv.o
KERNEL_SOURCE=/home/david/arm/kernel_src/linux-2.6.38-fri-sms/
CROSS_COMPILE=/home/david/arm/buildroot-2011.11/output/host/usr/bin/arm-linux-
all:
make -C $(KERNEL_SOURCE) M=$(PWD) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules
clean:
make -C $(KERNEL_SOURCE) M=$(PWD) clean |
In dobim tole, ter še polno drugih napak v stilu da z nekaterimi .h datotekami ni vse ok:
Koda: |
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
WARNING: Symbol version dump /home/david/arm/kernel_src/linux-2.6.38-fri-sms/Module.symvers
is missing; modules will have no dependencies and modversions. |
Potem sem poskusil enako za PC, potegnil sem dol kernel 3.5 itd (torej ne cross-compile). Dobil sem enako napako. Nato pa sem v KERNEL_SOURCE dal pot do folderja v katerega so se inštalirali headerji, ki sem jih dobil z apt-get install linux-headers-$(uname -r) in potem je šlo.
Torej če se vrnem na arm varianto. Očitno moram v Makefile-u pokazat na en drug include?
Hvala |
|
Nazaj na vrh |
|
 |
kotar Neznanec

Pridružen-a: Tor 09 Okt 2012 21:38 Prispevkov: 2 Aktiv.: 0.01 Kraj: Ljubljana
|
Objavljeno: Ned Feb 24, 2013 11:05 pm Naslov sporočila: |
|
|
Sem ugotovil, potrebno je bilo zbuildat kernel  |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|