Programim dhe zhvillim, javascript, python, php, html

Si të kaloni nga mikrokontrolluesit në linux të integruar?

Si një lloj i kundërt me këtë pyetje: "Është i ulët -programimi i sistemeve të integruara në nivel të vështirë për zhvilluesit e softuerit" Unë do të doja të kërkoja këshilla për kalimin nga sistemet e integruara të nivelit të ulët në programim për sisteme më të avancuara me OS, veçanërisht Linux të integruar.

Unë kam punuar kryesisht me pajisje dhe softuer të vegjël mikrokontrollues, por tani bëj vetëm softuer. Edukimi im gjithashtu përbëhet nga harduer dhe gjëra të ngulitura kryesisht. Unë nuk kam pasur shumë kurse programimi dhe nuk di shumë rreth dizajnit të softuerit ose kodimit OO.

Tani kam një projekt të madh në duart e mia që do të bëhet në Linux të ngulitur. Unë kam probleme të mëdha me dizajnimin e gjërave dhe mbajtjen e gjërave të menaxhueshme, sepse nuk më është dashur vërtet ta bëj këtë më parë. Gjithashtu përdorimi i multitasking dhe bllokimi i thirrjeve në vend të ekzekutimit të detyrës "paralele" nga funksioni kryesor është si një botë tjetër.

Çfarë lloj përvojash keni në kalimin nga programimi i nivelit të ulët në sisteme më të mëdha me OS (Linux)? Çfarë ishte e vështirë dhe si e zgjidhe? Çfarë lloj mendësie nevojitet?

A do të ishte e vlefshme të mësoni C++ nga zero apo të vazhdoni të përdorni C të thjeshtë?


Përgjigjet:


1

Problemet kryesore me përdorimin e kernelit Linux për të zëvendësuar sistemet e mikrokontrolluesve është drejtimi i pajisjeve me të cilat po ndërlidheni. Për këtë mund t'ju duhet të shkruani drejtues. Unë do të thoja përmbahuni me C si gjuhë sepse do të dëshironi ta mbani hapësirën e përdoruesit sa më të pastër që të jetë e mundur. Shikoni në bibliotekën uclibc për një bibliotekë më të dobët standarde C.

http://www.uclibc.org/

Ju gjithashtu mund të gjeni busybox të dobishme. Kjo siguron shumë shërbime të hapësirës së përdoruesit si një binar i vetëm.

http://www.busybox.net/

Pastaj është thjesht një çështje e nisjes nga një hapësirë ​​​​ruajtjeje në një sistem të drejtpërdrejtë dhe ekzekutimi i një logjike kontrolluese përmes init-it që ndërlidhet me harduerin tuaj. Nëse është e nevojshme, mund të hyni në sistemin e drejtpërdrejtë dhe të ekzekutoni shërbimet e busybox. Në të vërtetë, i vetmi ndryshim është se hapësira e përdoruesve është shumë më e dobët se në një shpërndarje normale dhe do të punoni 'më afër' kernelit për sa i përket objektivave.

Shikoni gjithashtu linux në kohë reale.

http://www.realtimelinuxfoundation.org/

Nëse keni nevojë për ndonjë premtim zyrtar për përfundimin e detyrës. Unë dyshoj se pjesa më e vështirë do të jetë nisja / ruajtja e vazhdueshme dhe ndërfaqja me pajisjen tuaj nëse është ekzotike. Nëse nuk jeni të njohur me nisjen e Linux-it atëherë

http://www.cromwell-intl.com/unix/linux-boot.html

Mund të ndihmojë.

Shkurtimisht, nëse nuk jeni zhvilluar në një nivel të thellë për Linux, nuk keni ndërtuar shpërndarjen tuaj ose keni përvojë në kernel, atëherë mund t'ju duket se programimi është i vështirë.

http://www.linuxdevices.com/ Mund të ndihmojë gjithashtu

Fat të mirë

02.06.2009
  • Unë kam një pajisje pune, të paktën tani për tani. Dhe përveç kësaj, unë e kam provuar kodin kryesisht në kompjuter. Pra, kodimi aktual është problemi më i madh për momentin, por këto mund të më duhen më vonë. Faleminderit. 05.06.2009
  • Mos u shqeteso! Fat i mirë me të gjitha. 05.06.2009

  • 2

    Për të punuar me Unix/Linux duhet të futeni në filozofinë Unix: http://www.faqs.org/docs/artu/ch01s06.html

    Unë e konsideroj të gjithë librin një lexim mjaft interesant: http://www.faqs.org/docs/artu/index.html

    Këtu mund të gjeni një shpërndarje Linux falas për objektivat e integruar plus ngarkuesin e nisjes për të filluar: http://www.denx.de/wiki/DULG/WebHome

    03.06.2009

    3

    Unë isha në një situatë shumë të ngjashme jo shumë kohë më parë. Bleva dhe lexova Embedded Linux Primer dhe ishte një mënyrë shumë e dobishme për të bërë kalimin mendor në një OS të nivelit të lartë (nga këndvështrimi i mikrokontrolluesit).

    Nëse keni "kohën për të 'marrë kohën tuaj'", padyshim që mund të bëni një tranzicion. Por nëse duhet të përshpejtoni shpejt, mund të dëshironi të merrni parasysh fuqimisht marrjen e një mentor teknik për t'ju ndihmuar.

    03.06.2009

    4

    Ju gjithashtu mund t'ju duket e dobishme të punoni në Linux duke filluar me ucLinux. Në thelb është Linux në një mikrokontrollues. Ju mund të merrni një ndjenjë për kernelin pa aspektin e kujtesës virtuale të tij si tranzicion. Shihni nëse ucLinux mbështet një mikrokontrollues me të cilin tashmë jeni njohur dhe shikoni se si kerneli ndërvepron me atë arkitekturë.

    Jam dakord që libri Embedded Linux Primer është i shkëlqyeshëm për të mbështjellë trurin tuaj rreth Linux-it të integruar. Është më mirë të qëndroni me C-në tani për tani. C++ mund të presë dhe është më i dobishëm për aplikacionet, jo për kodin e shoferit.

    Kur jeni të kënaqur me mënyrën se si funksionon ucLinux, atëherë mund të filloni me një kernel normal Linux në një arkitekturë mikroprocesori si ARM që ka një MMU dhe memorie virtuale.

    Vetëm dy centët e mi!

    09.06.2009
    Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..