Tips på ARM tutorials [LÖST]
Tips på ARM tutorials [LÖST]
Hej!
Söker intressant läsning om ARM processorer. Programmering verkar inte vara något problem. Men att bygga ihop processor, IO, minne, flash hittar jag ingen bra tutorial om.
Ambitioner:
Bygga embeddedsystem med GPIO och ethernet.
Plocka ihop ett eget Linux system med RTAI eller RT Preempt, gcc, ssh, osv.
Tips på dev boards uppskattas också.
Söker intressant läsning om ARM processorer. Programmering verkar inte vara något problem. Men att bygga ihop processor, IO, minne, flash hittar jag ingen bra tutorial om.
Ambitioner:
Bygga embeddedsystem med GPIO och ethernet.
Plocka ihop ett eget Linux system med RTAI eller RT Preempt, gcc, ssh, osv.
Tips på dev boards uppskattas också.
Senast redigerad av John_E 7 september 2015, 17:27:09, redigerad totalt 1 gång.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips på ARM tutorials
För enchippare rekommenderar jag STs STM32F-familj. De har billiga utvärderingskort om du vill testa.
Ska du köra Linux kan du naturligtvis bygga själv men det blir dyrt och besvärligt om du inte ska ha stora volymer.
BeagleBoneBlack och RaspberryPi är två billiga alternativ som har många användare och mycket information.
ODROID är ett annat alternativ med färre användare.
Lycka till!
Ska du köra Linux kan du naturligtvis bygga själv men det blir dyrt och besvärligt om du inte ska ha stora volymer.
BeagleBoneBlack och RaspberryPi är två billiga alternativ som har många användare och mycket information.
ODROID är ett annat alternativ med färre användare.
Lycka till!
Re: Tips på ARM tutorials
Vill du köra linux på arm eller är det det utan?
Rpi 2 är arm. Har gpio och ethernet.
Annars cortex-m , ex smt32f407
Edit: menar STM32F407
Rpi 2 är arm. Har gpio och ethernet.
Annars cortex-m , ex smt32f407
Edit: menar STM32F407
Re: Tips på ARM tutorials
Jag har gjort ett par projekt med raspberry pi.
Vill nu göra någon slags egen variant som ett hobbyprojekt.
Vill lära mig hur man designar hårdvaran, installerar en bootloader, bygger verktygskedja, osv.
Bättre insikt i embedded system helt enkelt.
Vill nu göra någon slags egen variant som ett hobbyprojekt.
Vill lära mig hur man designar hårdvaran, installerar en bootloader, bygger verktygskedja, osv.
Bättre insikt i embedded system helt enkelt.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips på ARM tutorials
Om du ska köra Linux på en vettig processor ska du nog strunta i att bygga hårdvaran.
Det finns en beskrivning på hur man använder RPi "bare metal" om du vill lära dig grunderna.
Vill du bygga Linux från grunden finns: LFS http://www.linuxfromscratch.org/
Edit: Skriva drivrutiner är också lite kul.
Det finns en beskrivning på hur man använder RPi "bare metal" om du vill lära dig grunderna.
Vill du bygga Linux från grunden finns: LFS http://www.linuxfromscratch.org/
Edit: Skriva drivrutiner är också lite kul.

Re: Tips på ARM tutorials
Du får nog dela upp det lite.
Gör allt det du skriver, utom själva hårdvaran, med Raspberry pi, om du redan har en sådan,
och se till att du förstår vad du gör.
Bygg kärnan, förstå Linux byggprocess, moduler och "Device tree" osv.
Korskompileringsverktyg bygger du själv med crosstools-ng eller motsv, förstå varför, inte bara "copy paste"
När ovanstående är "glasklart" , är det bara den enkla biten kvar, hitta en lämplig processor och koppla in ett minne
Gör allt det du skriver, utom själva hårdvaran, med Raspberry pi, om du redan har en sådan,
och se till att du förstår vad du gör.
Bygg kärnan, förstå Linux byggprocess, moduler och "Device tree" osv.
Korskompileringsverktyg bygger du själv med crosstools-ng eller motsv, förstå varför, inte bara "copy paste"
När ovanstående är "glasklart" , är det bara den enkla biten kvar, hitta en lämplig processor och koppla in ett minne

Re: Tips på ARM tutorials
Bra tips nifelheim och lillahuset.
Jag har patchat rasbian kärnan med RT Preempt tidigare, men aldrig kört från grunden.
Skall kolla in bare metal guider.
Jag har patchat rasbian kärnan med RT Preempt tidigare, men aldrig kört från grunden.
Skall kolla in bare metal guider.
Re: Tips på ARM tutorials
En fråga har uppstått när jag letat tutorials på ämnet "bygg egen raspberry pi kärna".
Den enda tutorial jag hittar som använder en vanilj kärna är denna. Och vad man gör i det fallet är att ladda ner en vaniljkärna samt klonar raspberrypi kärnan från github. Genererar en patch och bygger vaniljkärnan med den patchen. Ganska meningslöst om jag inte missförstått någonting.
Varför har raspberry pi projektet en hel kopia av kärnan och inte bara en patch och en .conf fil?
Vad kan man tänka att de har ändrat på i kärnan?
Är det vanligt att man behöver ändra kärnans kod för att den skall gå att köra på en ARM processor?
Den enda tutorial jag hittar som använder en vanilj kärna är denna. Och vad man gör i det fallet är att ladda ner en vaniljkärna samt klonar raspberrypi kärnan från github. Genererar en patch och bygger vaniljkärnan med den patchen. Ganska meningslöst om jag inte missförstått någonting.
Varför har raspberry pi projektet en hel kopia av kärnan och inte bara en patch och en .conf fil?
Vad kan man tänka att de har ändrat på i kärnan?
Är det vanligt att man behöver ändra kärnans kod för att den skall gå att köra på en ARM processor?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips på ARM tutorials
Nja, de kör lite S&M om jag förstår det hela rätt:
När det gäller själva ARM-koden så är den ganska väldefinierad och finns förmodligen i "mainline". Jag vet att TI har ansträngt sig mycket för att man ska kunna köra deras Sitara med standardlinux.
Det som gör att man har patchade kärnor är (om jag fattat det hela rätt) att nästan alla ARM som kör Linux idag är SOC (system on chip) och då behövs det antagligen en del patchar för att det ska fungera bra.
Jag är absolut ingen expert på ämnet, brukar föredra färdiga kärnor, och om sanningen ska fram, resten också.We could have cloned this repository, built it and ran a linux on our Pi.... yes we could, but we are a bit sadistic and as they say in my fitness club : "No pain, no gain". So let's try something fun : cloning the mainline kernel ( the latest stable version ) and adapt it for the Pi.
När det gäller själva ARM-koden så är den ganska väldefinierad och finns förmodligen i "mainline". Jag vet att TI har ansträngt sig mycket för att man ska kunna köra deras Sitara med standardlinux.
Det som gör att man har patchade kärnor är (om jag fattat det hela rätt) att nästan alla ARM som kör Linux idag är SOC (system on chip) och då behövs det antagligen en del patchar för att det ska fungera bra.
Re: Tips på ARM tutorials
Ok...
Jag kommer att börja experimentera med en raspberry pi.
Det blir buildroot och den officiella kärnan till att börja med.
När det funkar kommer jag nog att börja experimentera med pi:ens device tree. Kanske ställa in riktningen på gpio till en början. Kommer även att prova på att skriva lite drivrutiner.
Väntar med linux from scratch. Tror att det är nog att ta in så här.
Öppnar en ny tråd när det är dags att börja bygga någonting eget ARM baserat.
Tack för hjälpen.
Jag kommer att börja experimentera med en raspberry pi.
Det blir buildroot och den officiella kärnan till att börja med.
När det funkar kommer jag nog att börja experimentera med pi:ens device tree. Kanske ställa in riktningen på gpio till en början. Kommer även att prova på att skriva lite drivrutiner.
Väntar med linux from scratch. Tror att det är nog att ta in så här.
Öppnar en ny tråd när det är dags att börja bygga någonting eget ARM baserat.
Tack för hjälpen.
Re: Tips på ARM tutorials [LÖST]
Har ni sett denna: http://www.cl.cam.ac.uk/projects/raspbe ... orials/os/?
Det är en beskrivning i "kursform" med uppgifter hur man skapar en liten kärna på raspberry pi helt utan operativsystem, hur sätta upp byggmiljö, bootstrap, introduktion arm-assembler, hur kontrollera serieport, skriva text och grafik via hdmi, läsa usb-tangentbord, sätta upp så man kan skriva i C etc.
Det var tydligen ett sommarprojekt av snubbe som heter Alex Chadwick på en kurs i Cambridge.
Jag tyckte den var mycket trevlig, jag sträckläste eller snarare "sträcklabbade" den, kunde inte låta bli.
En annan bra men mer avancerad med ändå lättbegriplig "kurs" i arm-assembler (senare i kursen ganska avancerat) är http://thinkingeek.com/2013/01/09/arm-a ... chapter-1/, det finns för närvarande 25 delar. Den är baserad på att man labbar på raspbian / lunux i raspberry pi.
Det är en beskrivning i "kursform" med uppgifter hur man skapar en liten kärna på raspberry pi helt utan operativsystem, hur sätta upp byggmiljö, bootstrap, introduktion arm-assembler, hur kontrollera serieport, skriva text och grafik via hdmi, läsa usb-tangentbord, sätta upp så man kan skriva i C etc.
Det var tydligen ett sommarprojekt av snubbe som heter Alex Chadwick på en kurs i Cambridge.
Jag tyckte den var mycket trevlig, jag sträckläste eller snarare "sträcklabbade" den, kunde inte låta bli.
En annan bra men mer avancerad med ändå lättbegriplig "kurs" i arm-assembler (senare i kursen ganska avancerat) är http://thinkingeek.com/2013/01/09/arm-a ... chapter-1/, det finns för närvarande 25 delar. Den är baserad på att man labbar på raspbian / lunux i raspberry pi.
Senast redigerad av abcabc 11 september 2015, 22:01:05, redigerad totalt 2 gånger.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips på ARM tutorials [LÖST]
Jo den ser bra ut. Jag har inte läst/labbat igenom den men det lilla jag har kollat ser mycket seriöst ut.
Edit: Det här är också intressant: https://en.wikibooks.org/wiki/Bare-meta ... rogramming
Edit: Det här är också intressant: https://en.wikibooks.org/wiki/Bare-meta ... rogramming
Re: Tips på ARM tutorials [LÖST]
Något jag själv har labbat med är Arduino Due, det är ett labbkort med ARM Cortex M3 CPU, 96 kb ram, och 512 kb flash. Om man vill kan man använda exakt samma byggmiljö som Arduino Uno, men jag har använt en kommandorads-gcc-byggmiljö istället för att få en renare miljö och mer kontroll och kan enkelt skriva i assembler.
Fördelen jämfört med raspberry pi är att man har mer kontroll, enklare miljö, något enklare att få full dokumentation. Nackdelen är att den är för liten för att kunna köra linux om man skulle vilja. Kan vara bra att bekanta sig med innan man börjar bygga egen hårdvara.
Min plan var (eller är?) att porta unix version 7 (alltså den historiska från 70-talet), men annat har kommit emellan...
Numera har det släppts en ny Arduino Zero med ARM Cortex M0+ CPU, 32 kb ram, 256 kb flash, något mindre kraftfull, men tycks finnas bättre möjlighet att debugga på låg nivå med en slags inbyggt jtag-funktionalitet utan dyra jtag-donglar.
Fördelen jämfört med raspberry pi är att man har mer kontroll, enklare miljö, något enklare att få full dokumentation. Nackdelen är att den är för liten för att kunna köra linux om man skulle vilja. Kan vara bra att bekanta sig med innan man börjar bygga egen hårdvara.
Min plan var (eller är?) att porta unix version 7 (alltså den historiska från 70-talet), men annat har kommit emellan...
Numera har det släppts en ny Arduino Zero med ARM Cortex M0+ CPU, 32 kb ram, 256 kb flash, något mindre kraftfull, men tycks finnas bättre möjlighet att debugga på låg nivå med en slags inbyggt jtag-funktionalitet utan dyra jtag-donglar.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Tips på ARM tutorials [LÖST]
Jag vet ju inte vad du har för Cortex M3 men ST har ett antal olika utvärderingskort som är nästan gratis och innehåller SWD som du kan använda för att debugga andra kort.
http://www.digikey.com/product-detail/e ... ND/4357642
http://www.digikey.com/product-detail/e ... ND/4357642