Är det samma metodik att programmera olika processorer?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Är det samma metodik att programmera olika processorer?

Inlägg av DanielM »

Jag har kört 32-bittars processorer från ST länge och jag gillar dom. Ibland har det hänt att man har fått gått in i registerna och sätta dom manuellt.
Jag har hört att för att bli duktig på programmering av processorer, så måste man kunna olika märken. Då tänkte jag om det skiljer sig mycket mellan märkerna?

Vi tar t.ex. 32-bittars eller 8-bittars processor från ST, Microchip, NPX, Analog Devices, Silicon Labs med mera. Är det stor skillnad mellan dessa hur man programmerar dom?
Jag hr försökt ge mig på Silicon Labs, men dessa verkar kräva väldigt mycket mjukvara och exprimentkort samt programmerare för att ens kunna göra en blinkande LED-lampa.
ST och Microchip verkar ha mycket likheter när det kommer till programmerare.

Det enda jag har sett är att ST erbjuder grafisk design pinkonfiguration, vilket dom övriga märkerna inte har.
  1. Är det samma metodik att programmera en valfri processor om man väljer att programmera register?
  2. Är det bara ST som har grafisk pinkonfiguration?
  3. Vad kommer framtiden kräva? Plöja register, eller grafisk pinkonfiguration?
Användarvisningsbild
Klas-Kenny
Inlägg: 11344
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Är det samma metodik att programmera olika processorer?

Inlägg av Klas-Kenny »

1. Metodiken är densamma. Skillnaden är bara att periferienheterna fungerar på lite olika sätt, så det är mer att läsa när man börjar på en ny processor. Men det kan skilja rätt mycket mellan olika processorer av samma tillverkare också.
2. I princip alla har det i någon mån.
3. Smaksak, lär inte komma ifrån behovet av att ibland sätta sig in i register någon gång snart. Grafisk konfiguration är en smaksak om man gillar eller ej, men kommer säkert inte att minska.
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Re: Är det samma metodik att programmera olika processorer?

Inlägg av DanielM »

Jag är intresserad att börja med Microchip på grund utav dom verkar ha en tillgänglighet som är stabil samt priserna för deras processorer är enormt billiga. Jag menar, för 4-5 kr så kan man få en processor som kanske kan ha SPI-kommunikation. Inte dåligt om man behöver bara SPI. Till skillnad från STM8 så får man lägga på 5 kr.
Nerre
Inlägg: 26717
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Är det samma metodik att programmera olika processorer?

Inlägg av Nerre »

Det beror ju på på vilken nivå man programmerar.

Programmerar man i assembler finns det väl en del processorer där inte alla register kan användas till allt (idag är det kanske ovanligt). Min banan började ju med ABC80 och där lärde man sig snabbt att vissa register kunde bara användas till vissa saker, försökte man använda fel register till nån instruktion fick man assembleringsfel.

Programmerar man i C så tar ju kompilatorn hand om den biten.

När det gäller I/O så kan det ju också fungera väldigt olika, t.ex. kan det ju finnas vissa portar som har A/D-omvandlare eller PWM medans andra portar bara är digital I/O. Vissa portar kan vara latchade eller flanktriggade (d.v.s. kommer ihåg om det varit nån förändring sen porten senast lästes) medans andra är "direkta" osv.

Har man nåt specifikt utvecklingsverktyg så kanske det har definitionsfiler som ser till att man inte väljer fel port för A/D-ingång eller PWM-utgång, men annars blir det till att läsa datablad.

Sen kan det ju vara så att om ritar egna kort kanske man vill välja pinnar så kortlayouten blir smidig också, då gäller det ju att veta vilka portar man så att säga kan byta med varandra.

Och precis som Klas-Kenny säger så kan det skilja mycket mellan processorer från samma tillverkare, ofta har de olika "familjer".
Användarvisningsbild
Icecap
Inlägg: 26151
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Är det samma metodik att programmera olika processorer?

Inlägg av Icecap »

Inte ska man glömma att med "större" µC finns det ofta säkerhetsregister som ska låsas upp innan man kan ändra värdet i specifika register.
Detta kan ställa till det när man håller på att "lära känna" en µC familj.
Användarvisningsbild
hawkan
Inlägg: 2636
Blev medlem: 14 augusti 2011, 10:27:40

Re: Är det samma metodik att programmera olika processorer?

Inlägg av hawkan »

Man kan välja om man vill hålla på på register-nivå eller inte.
Vill man bara använda processorn finns det (ofta) miljöer som döljer alla dessa detaljer, tänker på Arduino.
Har sett att det finns mellanlager som inte är just register utan namnsatt lite förståeligt men med samma detaljer.
Är man ute efter just att fininställa perifera funktioner så är det till att läsa datablad.
Just ST är så komplex och har så mycket valbarhet att det är omöjligt för an vanlig dödlig att konfigurera in/utgångar utan hjälpmedel, därav cubemx.
Att låsa funktioner och register till vissa pinnar är det inte alla som gör.

Fråga dej vad du är ute efter. Vill du bara använda processorn så är allt detta bit-fipplande en komplexitet man inte vill ha.
Vill du bit-fippla så leta efter processorn med mest möjligheter.
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Re: Är det samma metodik att programmera olika processorer?

Inlägg av DanielM »

Jag skulle vilja lära mig hantera lågbudget processorer och kunna programmera dessa.

Jag har tittat lite på microchip. Inte för att dom är dom bästa eller snabbaste, utan för att dom är dom billigaste på marknaden.

Vad jag tror så är Microchip mer populärt än ST, av just kostnadsfrågan. Än fast en processor från ST verkar ha mer än vad en jämlik värdig processor från Microchip.

Jag tittar på lite filmer när någon programmerar microchip och dom kör oftast register då det finns inget "CubeMX" för MPLAB X. Det verkar inte vara något lyx där. Man kör den traditionella vägen helt enkelt. Vilket är väll mest lärorikt.

Nackdelen också med Microchips MPLAB X är att det verkar kosta pengar. Alltså C kompilatorn.
Användarvisningsbild
Synesthesia
Inlägg: 586
Blev medlem: 22 januari 2010, 19:14:10
Ort: Mellan Göteborg och Kungsbacka

Re: Är det samma metodik att programmera olika processorer?

Inlägg av Synesthesia »

Jag använder 9S08-serien från NXP med kompilator CodeWarrior, den har "Processor expert" som är motsvarigheten till CubeMx.

Kompilator: finns "Special edition" som är gratis (begränsad till 64k, men det brukar räcka då det är 8-bit), det är en av dessa, tror det var "Development Studio for Microcontrollers" men osäker: https://www.nxp.com/design/design-cente ... TE-SPECIAL
Den inkluderar även en simulator som kan simulera alla interface och processorn på registernivå, du kan testa den som den är utan hårdvara.
Programmer/debugger finns för ca 150-200kr på amazon, ebay eller andra, sök efter "USBDM".
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är det samma metodik att programmera olika processorer?

Inlägg av TomasL »

Nackdelen också med Microchips MPLAB X är att det verkar kosta pengar. Alltså C kompilatorn.
Nej C-kompilatorn är gratis, dock är den låst till de 2 lägsta optimeringsfunktionerna, samt att du inte får källkoden till libbarna.
Det finns ingen begränsning av kodstorlek i C-kompilatorn.
C-kompilatorn är en custom-version av GNU-C, i alla fall när det gäller PIC32, för 8-bitars prollarna är det väl HiTEC-C har jag för mig, för de övriga vet jag inte.
MPLAB-C för 18F var har har jag för mig egenutvecklad av uChip, funkar dock inte i MPLABX
MPLABX C-kompilator också uppgradera till C++.
uChip har motsvarande grafiska verktyg som alla andra.
Att deras processorer är populära beror snarare på att man från första början erbjöd gratis utvecklingsverktyg och billiga programmerare, samt att man hade snabba leveranser, även i produktionskvantiteter.
Man var även väldigt snälla när det gällde "Sampling".
Att många ställer registren manuellt är väl av historiska skäl, då många tidigare jobbat i "gamla" MPLAB, och där saknades de grafiska möjlighterna, å man fortsätter av gammal vana.
Dessutom så genererar alla dessa grafiska verktyg, oavsett tillverkare en hel del overhead, som egentligen inte är nödvändig
Användarvisningsbild
ojz0r
Inlägg: 249
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

Re: Är det samma metodik att programmera olika processorer?

Inlägg av ojz0r »

Jag misstänker att DanielM är ute efter ARM MCU:a som kom ifrån Atmel, typ ATSAMx?
Isf så är det Klas-Kenny skrev i sin första punkt väldigt gällande då både ST och Microchip (Atmel) använder ARM cortex M som kärna. Resterande perferierna skiljer sig så klart.

Sedan har ju Microchip sina 32-bitars mips MCU:r också, dessa skiljer sig nog definitivt mer då det är en annan arkitektur.

Jag har för mig att Microchip har en motsvarighet till CubeMX för ATSAM MCU:a. Det ligger nog med i "ASF" ramverket, vilket jag inte minns vad det stod för.
(Jag var nära att börja programmera ATSAMD11 på hobbybasis innan livet kom emellan, så jag gjorde endel research innan. Dock var det ett par år sedan).
Användarvisningsbild
AndLi
Inlägg: 17160
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Är det samma metodik att programmera olika processorer?

Inlägg av AndLi »

DanielM skrev: 18 februari 2024, 22:18:05 Jag skulle vilja lära mig hantera lågbudget processorer och kunna programmera dessa.

Jag har tittat lite på microchip. Inte för att dom är dom bästa eller snabbaste, utan för att dom är dom billigaste på marknaden.

Vad jag tror så är Microchip mer populärt än ST, av just kostnadsfrågan. Än fast en processor från ST verkar ha mer än vad en jämlik värdig processor från Microchip.

Jag tittar på lite filmer när någon programmerar microchip och dom kör oftast register då det finns inget "CubeMX" för MPLAB X. Det verkar inte vara något lyx där. Man kör den traditionella vägen helt enkelt. Vilket är väll mest lärorikt.

Nackdelen också med Microchips MPLAB X är att det verkar kosta pengar. Alltså C kompilatorn.
Det låter inte så lågbudget med microchip, ska du ha lågbudget får du nog söka dig mot den asiatiska marknaden, eller vad är lågbudget för dig? under 10 cent st?
Användarvisningsbild
adent
Inlägg: 4103
Blev medlem: 27 november 2008, 22:56:23
Ort: Utanför Jönköping
Kontakt:

Re: Är det samma metodik att programmera olika processorer?

Inlägg av adent »

DanielM skrev: 18 februari 2024, 13:22:05 <klipp>
  1. Är det samma metodik att programmera en valfri processor om man väljer att programmera register?
  2. Är det bara ST som har grafisk pinkonfiguration?
  3. Vad kommer framtiden kräva? Plöja register, eller grafisk pinkonfiguration?
1. Ja ungefär, många processorer har en Cortex ARM-kärna så kärnregistren är samma, peripheralsen kan skilja.
Pic:arna, Texas Instruments MSP430 och Atmel (jaja microchip) AVR är såpass små och enkla att det är relativt lätt att läsa sig till hur registren ska sättas upp.
2. Många har börjat komma med grafisk uppsättning, men på de mindre processorerna är det inte riktigt lika behövligt.
3. Lär nog gå mer mot grafiskt.
DanielM
Inlägg: 2194
Blev medlem: 5 september 2019, 14:19:58

Re: Är det samma metodik att programmera olika processorer?

Inlägg av DanielM »

adent skrev: 19 februari 2024, 10:08:00 1. Ja ungefär, många processorer har en Cortex ARM-kärna så kärnregistren är samma, peripheralsen kan skilja.
Pic:arna, Texas Instruments MSP430 och Atmel (jaja microchip) AVR är såpass små och enkla att det är relativt lätt att läsa sig till hur registren ska sättas upp.
2. Många har börjat komma med grafisk uppsättning, men på de mindre processorerna är det inte riktigt lika behövligt.
3. Lär nog gå mer mot grafiskt.
Jag är inte expert på ARM. Jag kör mest bara C när det kommer till uC. Det har hänt att jag har fått titta i register för att t.ex. spara saker i EEPROM.

Vilka märken har börjat med grafisk uppsättning? ST är en av dom. Dom var väll först med detta?
AndLi skrev: 19 februari 2024, 09:00:15 Det låter inte så lågbudget med microchip, ska du ha lågbudget får du nog söka dig mot den asiatiska marknaden, eller vad är lågbudget för dig? under 10 cent st?
4-5 kr tycker jag är låg budget. Jag köper allt från Musen (Mouser).
ojz0r skrev: 19 februari 2024, 08:35:44 Jag misstänker att DanielM är ute efter ARM MCU:a som kom ifrån Atmel, typ ATSAMx?
Isf så är det Klas-Kenny skrev i sin första punkt väldigt gällande då både ST och Microchip (Atmel) använder ARM cortex M som kärna. Resterande perferierna skiljer sig så klart.

Sedan har ju Microchip sina 32-bitars mips MCU:r också, dessa skiljer sig nog definitivt mer då det är en annan arkitektur.

Jag har för mig att Microchip har en motsvarighet till CubeMX för ATSAM MCU:a. Det ligger nog med i "ASF" ramverket, vilket jag inte minns vad det stod för.
(Jag var nära att börja programmera ATSAMD11 på hobbybasis innan livet kom emellan, så jag gjorde endel research innan. Dock var det ett par år sedan).
Jag är ute efter att programmera billiga processorer som har det grundläggande: Timer, SPI, I2C. ADC och DAC är bara plus, men det behövs inte alla gånger.
Något som är viktigt för mig är en debugger så jag kan felsöka i koden. Otroligt viktigt!
TomasL skrev: 19 februari 2024, 06:00:00 Nej C-kompilatorn är gratis, dock är den låst till de 2 lägsta optimeringsfunktionerna, samt att du inte får källkoden till libbarna.
Det finns ingen begränsning av kodstorlek i C-kompilatorn.
C-kompilatorn är en custom-version av GNU-C, i alla fall när det gäller PIC32, för 8-bitars prollarna är det väl HiTEC-C har jag för mig, för de övriga vet jag inte.
MPLAB-C för 18F var har har jag för mig egenutvecklad av uChip, funkar dock inte i MPLABX
MPLABX C-kompilator också uppgradera till C++.
uChip har motsvarande grafiska verktyg som alla andra.
Att deras processorer är populära beror snarare på att man från första början erbjöd gratis utvecklingsverktyg och billiga programmerare, samt att man hade snabba leveranser, även i produktionskvantiteter.
Man var även väldigt snälla när det gällde "Sampling".
Att många ställer registren manuellt är väl av historiska skäl, då många tidigare jobbat i "gamla" MPLAB, och där saknades de grafiska möjlighterna, å man fortsätter av gammal vana.
Dessutom så genererar alla dessa grafiska verktyg, oavsett tillverkare en hel del overhead, som egentligen inte är nödvändig
Exakt. Då finns det begränsingar hos Microchip. Jag tittade lite hos Dave Jones från EVVBlog som sa att han föredrar fortfarande Microchip före ST, inte för att han sa att Microchip var bättre än ST, utan för att dom var likvärdiga och Microchip kunde han redan sedan urminnes tider.

Men när jag tittar på Musen så verkar Microchip vara dom billigaste processorerna som man kan köpa. 4-5 kr ligger dom billigaste på. Något som är viktigt för mig är följande:
  • Debugger så man kan följa koden i realtid
  • Timer
  • SPI
  • I2C
Mer än sådan behöver jag inte. Vill jag lägga till ADC så köper jag en ADC modul som kopplas ihop med SPI.

Skulle du kunna ta lite skärmdumpar på hur man startar upp ett projekt med MPLAB X eller vad det nu man ska använda? Jag funderar på att lägga till Microchip i min lilla kunskapsbank. För 32-bittars uC så nöjer jag mig med ST. Det är alltid bra att kunna ha olika märken som man kan använda. :tumupp:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45304
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är det samma metodik att programmera olika processorer?

Inlägg av TomasL »

Tror inte det finns någon tillverkare som tillhandahåller en obegränsad C-kompilator utan att ta betalt för den.
Skall man debugga går det inre att använda de högre optimeringarna, så det spelar väldigt liten roll.
De MIPS-baserade processorerna från uChip, dvs PIC32, är väldigt trevliga att jobba med och synnerligen kompetenta.
Användarvisningsbild
AndLi
Inlägg: 17160
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Är det samma metodik att programmera olika processorer?

Inlägg av AndLi »

Kör man Arm kan man ju köra GCC, kostar gratis...
Skriv svar