Programování atmel SAM procesorů
Moderátor: Moderátoři
Programování atmel SAM procesorů
Chtěl bych programovat něco pokročilejšího na ARMu. Když jsem chtěl vytvořit něco podobného jako je Arduino DUE, jen na SAM4S, protože SAM3 jsem skladem nenašel. Ten 4S je levnější a prodává se. Připojil jsem ho přes JTAG ICE k atmel studiu a tam skončil. Nevím jak začít s nastavováním frekvence, nastavením desky a vůbec. Rád bych, kdyby mě někdo odkázal na něco, třeba tutorial či knihu týkající zásad práce s tímhle procesorem. Na arduiu jsem si celkem poradil, ale tady se musí nastavit opravdu všechno. Mám obecné povědomí, ale konkrétní věci co zjistit, jak s jakýmkoli procesorem v tom sudiu pracovat neumím. Atmel desku s tímhle procesorem nemá a tak se nemůžu inspirovat ani podle tohodle příkladu.
STM32 ?
http://www.digikey.com/en/product-highl ... stm32-kits
http://www.st.com/en/embedded-software/ ... ctId=SC961
boards, programmers... staci si vybrat
http://www.digikey.com/en/product-highl ... stm32-kits
http://www.st.com/en/embedded-software/ ... ctId=SC961
boards, programmers... staci si vybrat
este by som doplnil ze ja nepouzivam arduino - ale co sa tyka AVR, tak "zelenu lucku" - a tam si tiez musis nastavit vsetko sam (podla pdf-ka), FUSES, a potom je tam len kod, ktory napisem. Programujem to nejakym ISP programatorom, ale ked si kupis STM32 board (este som tiez neskusil, ale jeden kamos mi to popisoval), tak IDE je for free, a obsahuje "visualne nastavovatko" - ze poklikas v okne na patricne controlsy aby ti nastavil povedzme nejake bity portu ako vystup, a on ti nageneruje tie inicializacne kody do C zdrojaku - aby si nemusel tolko citat a skusat podla datasheetu..
fero_b:
děkuji. Tohle všechno znám, programování AVR mi problémy nedělá. Jde o to, že mám koupený atmel ICE a mám nevrženou funkční desku pro svůj domácí systém. Dokud jsem si ale pořádně to atmel studio nevyzkoušel s procesorem, nevěděl jsem co všechno mě čeká.
termit256:
Ano arduino je jednoduché a funkční. Proto chci pokračovat dál a vyzkoušet si práci i s debugerem. Jenže jsem nenašel návod, podle kterého se odrazit a začít.
Proto bych potřeboval někoho, kdo v atmel studiu pracoval, nebo aspoň ví, jak počáteční projekt nastavit. Nebo aspoň relativně aktuální knihu.
děkuji. Tohle všechno znám, programování AVR mi problémy nedělá. Jde o to, že mám koupený atmel ICE a mám nevrženou funkční desku pro svůj domácí systém. Dokud jsem si ale pořádně to atmel studio nevyzkoušel s procesorem, nevěděl jsem co všechno mě čeká.
termit256:
Ano arduino je jednoduché a funkční. Proto chci pokračovat dál a vyzkoušet si práci i s debugerem. Jenže jsem nenašel návod, podle kterého se odrazit a začít.
Proto bych potřeboval někoho, kdo v atmel studiu pracoval, nebo aspoň ví, jak počáteční projekt nastavit. Nebo aspoň relativně aktuální knihu.
Tady mas povidani o atmel studiu
http://www.atmel.com/webdoc/atmelstudio/index.html
Arduino je neskutecna blbost. Je sice pravda ze k "programovani" pritahne spoustu lidi, ale pokud se chces hnout dal, musis zacinat vicemene znovu.
Musis proste pochopit, ze normalni je precist si datasheet, zjistit jak ktere nastaveni funguje a na co ma vliv a provest konfiguraci MCU dle tvych potreb. A je uz jedno jestli to udelas v nejakem klikacim rozhrani, nebo primym zapisem hodnot do registru.
http://www.atmel.com/images/atmel-11100 ... asheet.pdf
Normalni rozhodne neni stahnout si neco z internetu, nahrat do do arduina a doufat ze to bude nejak fungovat. Takhle se neprogramuje, navzdory tomu ze si to hodne lidi mysli.
Pokud budes mit nejaky konkretni dotaz, urcite ti tu nekdo poradi, ale na otazky typu "jak zacit s nastavovanim desky a vubec" je tezko neco radit.
http://www.atmel.com/webdoc/atmelstudio/index.html
Arduino je neskutecna blbost. Je sice pravda ze k "programovani" pritahne spoustu lidi, ale pokud se chces hnout dal, musis zacinat vicemene znovu.
Musis proste pochopit, ze normalni je precist si datasheet, zjistit jak ktere nastaveni funguje a na co ma vliv a provest konfiguraci MCU dle tvych potreb. A je uz jedno jestli to udelas v nejakem klikacim rozhrani, nebo primym zapisem hodnot do registru.
http://www.atmel.com/images/atmel-11100 ... asheet.pdf
Normalni rozhodne neni stahnout si neco z internetu, nahrat do do arduina a doufat ze to bude nejak fungovat. Takhle se neprogramuje, navzdory tomu ze si to hodne lidi mysli.
Pokud budes mit nejaky konkretni dotaz, urcite ti tu nekdo poradi, ale na otazky typu "jak zacit s nastavovanim desky a vubec" je tezko neco radit.
To bych neřekl. Je to celkem podařený pokus jak udělat HW abstrakci i na mikrokontrolérech. Pokud tohle šmahem odmítneme, tak, dotaženo ad absurdum, jak se budeme dívat na to, že se programují "velké" počítače s využitím API operačního systému a knihoven dodávaných k překladači? Není přece cílem neustále dokola vymýšlet a ladit, jak naprogramovat I2C nebo PWM.termit256 píše:Arduino je neskutecna blbost.
Nešťastné je prostředí, ale dá se pohodlně pracovat na normálním projektu ve Studiu s HW debuggerem a v případě potřeby použít nějakou Arduiní knihovnu - třeba když se nechci babrat s ovládáním W5100. A vůbec nepotřebuji nějakou Arduino desku, stačí se přizpůsobit pinoutu.
Za další si nemyslím, že frekventované knihovny jsou "něco staženého z Internetu". Jsou určitě důkladněji otestované množstvím uživatelů a množstvím různých použití než kód, který si napíšeme sami a použijeme jej jednou v jednom konkrétním nasazení.
Tím nechci říci, že není třeba být kritický - sám jsem zde dal například chybu nastavení UART pro ATmega32, je třeba dát pozor na interakce knihoven s dalším kódem a proto znalost datasheetu MCU je jen prospěšná.
Jako hlavní negativum bych viděl, že spoustu začínajících programátorů má schopnost přesvědčit, že tohle je to pravé programování a nic více už není. A pak, když nemáme knihovnu ke stažení, jsme v koncích.
Neco v tom smyslu jsem chtel rict.mtajovsky píše: ... Jako hlavní negativum bych viděl, že spoustu začínajících programátorů má schopnost přesvědčit, že tohle je to pravé programování a nic více už není. A pak, když nemáme knihovnu ke stažení, jsme v koncích.
Proti knihovnam nic nemam, sam je s oblibou pouzivam protoze opravdu usetri spoustu prace. Problem je v tom, ze arduinari si to postahuji vcetne zakladni konfigurace MCU a pak je problem kdyz nevi nastavit jak funguji hodiny, preruseni, citace apod. Knihovny pouzivam jako samostane bloky ktere maji nejaky vstup/vystup a udelaji to co chci. Jenze typicky "arduinar" postahuje par knihoven, slepi to nejak dohromady aniz by prilis chapal co vlastne dela a doufa ze celek bude nejak fungovat. A to je spatne.
trochu OT: poslední dobou se roztrhl pytel s absolventama sš/vš ucházející se o zaměstnání jako embedded vývojáři, co vrcholem jejich zkušeností je rozblikat LEDku na nějaké té pochybné platformě - různý ty IoT, Arduina, mbedy...neznají spoustu základních pojmů v ANSI C, chyby zásadně hledají přes debugger a různým zkoušením...začíst se do datasheetu, aplikačních poznámek či manuálu ke kompileru je nadlidský problém
bože, já bych to IoT/Arduino/whatever zakázal
![Very Happy :-D](./images/smilies/icon_biggrin.gif)
bože, já bych to IoT/Arduino/whatever zakázal
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
![Very Happy :-D](./images/smilies/icon_biggrin.gif)
Díky misoj286 za přínosný komentář.
Ostatním pánům, kterým se tímto klaním, nesahám já hloupý po kotníky. Protože jsem projevil obrovskou neomalenost a dovolil si zmínit Arduino, které mělo pomoci specifikovat můj dotaz. Vystoupil jsem s jednoduchým dotazem: Jak si v Atmel studiu správně nastavit projekt a případně zjistit literaturu, která by mi v další práci pomohla. Kromě jednoho, jste se začali předhánět v tom, kdo Arduino víc pomluví, ačkoliv mělo sloužit jako příklad cíle, kterého chci dosáhnout ve svém projektu. Nastavit správně IO, nastavit frekvence příkazy, které neznám. Rád bych si totiž něco vytvořil, něco se naučil, a tak jsem myslel, že fórum eBASTLÍRNA k tomu bude určená. Ještě jednou se velice omlouvám komukoliv, kdo pocítil nějakou újmu či malou mrtvici, když četl to slovo na A.. .
Ano trochu přeháním, záměrně. Tak že Vám také dám cennou radu: Pokud nemůžu tazateli poradit, tak nekomentuji. Založím si svůj topic, ve kterém se budu věnovat nenávisti čehokoliv/kohokoliv. Admin nechť smaže tento i ostatní příspěvky, které nejsou ničím přínosné.
Pokud mi ale může někdo poradit, byl bych rád za věcnou diskuzi, případně informace, jak si projekt v Atmel studiu sami nastavujete.
Ostatním pánům, kterým se tímto klaním, nesahám já hloupý po kotníky. Protože jsem projevil obrovskou neomalenost a dovolil si zmínit Arduino, které mělo pomoci specifikovat můj dotaz. Vystoupil jsem s jednoduchým dotazem: Jak si v Atmel studiu správně nastavit projekt a případně zjistit literaturu, která by mi v další práci pomohla. Kromě jednoho, jste se začali předhánět v tom, kdo Arduino víc pomluví, ačkoliv mělo sloužit jako příklad cíle, kterého chci dosáhnout ve svém projektu. Nastavit správně IO, nastavit frekvence příkazy, které neznám. Rád bych si totiž něco vytvořil, něco se naučil, a tak jsem myslel, že fórum eBASTLÍRNA k tomu bude určená. Ještě jednou se velice omlouvám komukoliv, kdo pocítil nějakou újmu či malou mrtvici, když četl to slovo na A.. .
Ano trochu přeháním, záměrně. Tak že Vám také dám cennou radu: Pokud nemůžu tazateli poradit, tak nekomentuji. Založím si svůj topic, ve kterém se budu věnovat nenávisti čehokoliv/kohokoliv. Admin nechť smaže tento i ostatní příspěvky, které nejsou ničím přínosné.
Pokud mi ale může někdo poradit, byl bych rád za věcnou diskuzi, případně informace, jak si projekt v Atmel studiu sami nastavujete.
budeš překvapený, ale ten hate co tady snesl na Arduino platformu je docela oprávněný...jako ty sem obdobně začínal.
Jestli to myslíš s embedded vývojařinou vážně, tak se těmhle platformám obloukem vyhni.
Tyhle platformy kolem IoT (Arduino, mbed) jsou pro lidi, co potřebujou zbastlit rychle nějaký patos z dostupných modulů. Je to jen vrstva nad vrstvou, která tě chrání od záležitostí, které by ses měl prvně naučit. Navíc se spoléháš na zdroják třetích stran. Na tom není nic špatného, pokud těm samotným zdrojákům rozumíš a jseš schopný v nich najít chyby![Very Happy :D](./images/smilies/icon_biggrin.gif)
Z vlastní zkušenosti se přidám k názoru, co tu už padl. Chceš programovat pokročile? Začni na zelené louce. Chceš být závislý na těhle APIčkách? Jdi na arduino fóra...
Jestli to myslíš s embedded vývojařinou vážně, tak se těmhle platformám obloukem vyhni.
Tyhle platformy kolem IoT (Arduino, mbed) jsou pro lidi, co potřebujou zbastlit rychle nějaký patos z dostupných modulů. Je to jen vrstva nad vrstvou, která tě chrání od záležitostí, které by ses měl prvně naučit. Navíc se spoléháš na zdroják třetích stran. Na tom není nic špatného, pokud těm samotným zdrojákům rozumíš a jseš schopný v nich najít chyby
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Z vlastní zkušenosti se přidám k názoru, co tu už padl. Chceš programovat pokročile? Začni na zelené louce. Chceš být závislý na těhle APIčkách? Jdi na arduino fóra...
Ale i na té zelené louce je HW Arduino, Nucleo ... použitelné. Stejně jako všechny jiné desky ala "minimal system board". Ne každý se chce letovat s TQFP nebo vůbec s něčím letovat a bastlit ve fázi studia platformy. Pokud vyberu správnou desku, můžu se připojit na JTAG piny. I s tou ATmega 328 v Arduinu můžu pracovat s HW debuggerem, když odpojím resetovací kondenzátor, aby začal fungovat debugWire. Sednout k AtmelStudiu nebo jinému IDE napojenému na debugger/emulátor a zapomenout, že to bylo původně nějaké Arduino.
Ale z jiného pohledu - mám kamaráda ze studií, už v důchodovém věku. Celý život se zabývá elektronikou - servis, bastlení a vývoj. Ale nikdy nesáhl na programování nebo MCU. Jeho snem a velikým přáním dnes je něco naprogramovat, rozběhat něco na MCU. A s ohledem na jeho věk 64 let - co byste mu doporučili? Má si sednout k učebnici C/C++, nastudovat spoustu neznámých pojmů, co je to strukturované programování, jak vlastně processor pracuje a množství jiných nezbytných základů? Studovat architekturu konkrétního processoru? Navíc, když angličtinu skoro nezná. Jemu pomůže už jen taková věc, jako je Arduino, Bascom atd.
Jiná věc je založení projektu - na to je wizard, kde se určí základní charakteristiky projektu. Pak se do projektu přidávají položky - existující nebo nové soubory. Pravou myší zvolit Add existing nebo Add new.
Třetí věcí je pak programovací dialog, kde se nastavuje typ připojeného programátoru - debuggeru.
Ale z jiného pohledu - mám kamaráda ze studií, už v důchodovém věku. Celý život se zabývá elektronikou - servis, bastlení a vývoj. Ale nikdy nesáhl na programování nebo MCU. Jeho snem a velikým přáním dnes je něco naprogramovat, rozběhat něco na MCU. A s ohledem na jeho věk 64 let - co byste mu doporučili? Má si sednout k učebnici C/C++, nastudovat spoustu neznámých pojmů, co je to strukturované programování, jak vlastně processor pracuje a množství jiných nezbytných základů? Studovat architekturu konkrétního processoru? Navíc, když angličtinu skoro nezná. Jemu pomůže už jen taková věc, jako je Arduino, Bascom atd.
On pojem "nastavení projektu v Atmel Studiu" je poněkud široký. V principu se v projekt exploreru vybere položka projektu, pravou myší se otevře rozbalovací menu a zvolí Properties (nebo podobně, teď to nemám před sebou). Otevře se nové okno s vlastnostmi projektu, kde je vícero záložek. Ohledně překladače, linkeru atd. Zde se pak nastavují například adresáře s inkludovanými headery a množství jiných věcí. Záleží, na co se konkrétně ptáte.silas15 píše:Pokud mi ale může někdo poradit, byl bych rád za věcnou diskuzi, případně informace, jak si projekt v Atmel studiu sami nastavujete.
Jiná věc je založení projektu - na to je wizard, kde se určí základní charakteristiky projektu. Pak se do projektu přidávají položky - existující nebo nové soubory. Pravou myší zvolit Add existing nebo Add new.
Třetí věcí je pak programovací dialog, kde se nastavuje typ připojeného programátoru - debuggeru.
Ne, je odpověď.mtajovsky píše:A s ohledem na jeho věk 64 let - co byste mu doporučili?
Může využívat toho co už umí, může to učit mladé.
Nemá smysl učit se v důchodu programovat, neprospěje tím ani sobě ani lidstvu.
Sháním hasičák s CO2 "sněhový", raději funkční.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
Cetls vubec ten navod co jsem ti nalinkoval? Tam mas vsechno na co ses ptal pekne popsane. Nebo to mam zkopirovat do fora? http://www.atmel.com/webdoc/atmelstudio ... tPage.html
Co bys vlastne chtel? Aby ti nekdo vzdy spravne nastavil vsechny volby kterym nerozumis ke kazdemu tvemu projektu o kterem dotycny nevi zhola nic? Tohle je opravdu mozne jen ve svete arduina, ale takhle se normalne neprogramuje. Normalni je precist si dokumentaci k IDE a k pouzitemu MCU a pak neco delat. Proste neexistuje nejaka univerzialni konfigurace kterou si odnekud stahnes jak si zvykly z arduina.
Ty jsi ukazkovy priklad toho proc arduino nepouzivat a jak dovede zakorenit spatne navyky a postupy hned od zacatku. Tak to proste je a nekomu trva kratsi, jinemu delsi dobu nez to pochopi a nekomu to nedojde nikdy.
Kdyz nebudes vedet napr. jak funguje treti bit registru CKGR_MCFR, urcite ti nekdo poradi, ale otazky typu "jak nastavit prikazy ktere neznam" nechej borcum ve svete arduina.
Arduino jako zdroj levneho HW ano, mozna pouzit kusy kodu typu "overeni CRC u DS18B20" apod, taky ano, ale na zbytek proste zapomen. Snazi se ti to rict temer vsichni, tak poslouchej.
Co bys vlastne chtel? Aby ti nekdo vzdy spravne nastavil vsechny volby kterym nerozumis ke kazdemu tvemu projektu o kterem dotycny nevi zhola nic? Tohle je opravdu mozne jen ve svete arduina, ale takhle se normalne neprogramuje. Normalni je precist si dokumentaci k IDE a k pouzitemu MCU a pak neco delat. Proste neexistuje nejaka univerzialni konfigurace kterou si odnekud stahnes jak si zvykly z arduina.
Ty jsi ukazkovy priklad toho proc arduino nepouzivat a jak dovede zakorenit spatne navyky a postupy hned od zacatku. Tak to proste je a nekomu trva kratsi, jinemu delsi dobu nez to pochopi a nekomu to nedojde nikdy.
Kdyz nebudes vedet napr. jak funguje treti bit registru CKGR_MCFR, urcite ti nekdo poradi, ale otazky typu "jak nastavit prikazy ktere neznam" nechej borcum ve svete arduina.
Arduino jako zdroj levneho HW ano, mozna pouzit kusy kodu typu "overeni CRC u DS18B20" apod, taky ano, ale na zbytek proste zapomen. Snazi se ti to rict temer vsichni, tak poslouchej.