Warning: Illegal string offset 'name' in [path]/includes/functions.php on line 6439
ESP8266 + Arduino IDE. help! -
+
1 2

thread: ESP8266 + Arduino IDE. help!

  1. #11
    Senior Member
    Nov 2009
    Jēkabpils
    2,055

    ok, ok , neesmu vēl izaudzis līdz ESP8266 - neizpakots stāv uz galda.
    Vēl viena doma. Arduino vidē jau nav iespēju mainīt kompilatora direktīvas. Saistībā ar to pašu volatile nepieciešamību mainīgajam. Ja kompilatoram atslēdz koda optimizāciju, tad viss strādājot ar parastu mainīgo. Varbūt arduino pēc kaut kāda sev zināma algoritma pamaina kompilatora direktīvas. Salīdzini tos mazos baltos burtiņus , kas tur skrien kompilējot tad, kad kods darbojas un tad, kad nē. Laikam kaut kur aiz avr-gcc varētu meklēt.

  2. #12
    Senior Member
    Jun 2006
    Cēsu novads
    988

    Nu jā, šāda "nop" virknīte nekādi nevarētu kaitēt. Es neredzu citu variantu, kā nolasīt iešūto kodu, kad nestrādā, pēc tam, kad strādā, atrast atšķirības, dizasamblēt, salīdzināt ar to, ko vajadzēja iešūt un tad mēģināt saprast, kāpēc kas kā. Izskatās, ka ar pirmo reizi netiek viss iešūts un vietā, kur būtu jābūt pārtraukuma apstrādei, nekā nav, t.i. tur ir FFFF un nonākot tur procesors restartējas.

  3. #13
    Senior Member
    Mar 2011
    1,119

    Es neredzu citu variantu, kā nolasīt iešūto kodu, kad nestrādā, pēc tam, kad strādā, atrast atšķirības, dizasamblēt, salīdzināt ar to, ko vajadzēja iešūt un tad mēģināt saprast, kāpēc kas kā..

    mana saprašana par īsu priekš tā. Nolasīt un dizasemblēt jau tā kā varētu iemācīties, bet diez vai sapratīšu, kas jaraxta citādi, lai panāktu ka ar pirmo reizi iešujas pareizajā vietā
    ..
    aaa tu domā ka raxtīt iekšā jau gatavu nokompilētu kodu, kas nokopēts no ejošas ESP8266? Ta nav slikta doma, bet atkal problēmas, ja kaut kas jāpamaina kodā...
    Vai to kodu jau nevar binra formāno paša Arduino IDE dabūt laukā, lai nav no ESPkas jāvelk nost?

  4. #14
    Senior Member
    Jun 2006
    Cēsu novads
    988

    Es gluži nebiju domājis klonēt kodu no ejoša moduļa uz neejošu. Biju domājis nolasīt tīri hex formāta failu no ejoša moduļa un no neejoša un sākumā salīdzināt tīri uz aci, kur ir atšķirības. Man domāt neejošā variantā, vietā, kur būtu jābūt pārtraukuma apstrādes apakšprogrammai būs vieni FFFF, šķiet, ka kaut kādu iemeslu dēļ šī apakšprogramma netiek kompilēta vai iešūta. Ha, viens no iemesliem kāpēc tā varētu netikt kompilēta:
    #ifndef FUNKC_H
    #define FUNKC_H
    pārtraukuma apstrādes apakšprogramma tiek kompilēta tikai tad, ja FUNKC_H nav iepriekš definēta. Bet ja nu kompilators domā, ka ir definēta. Varbūt kompilatoram ir kāds iemesls tā domāt. Varbūt pamēģini bez šitā:
    #ifndef FUNKC_H

  5. #15
    Senior Member
    Mar 2011
    1,119

    Ja viņs jau ir definēts, tas nozīmē ka šis fails jau ir nolasīts/izpildīts. Citu variantu nav.
    Par #ifndef XXX un #define XXX man nav īsti skaidrs, priekš kam vispār šīs rindiņas parasti tiek rakstītas *.h failu sākumos. Es paskatījos kā citi raxts un arī ieraxtīju. Teorētiski, ja jau es piesaku kaut kādu *.h failu, tad priekš kam vēl definēt viņa nosaukumu? Vai tāpēc lai 2x viņu nelieto?
    ..
    Laikam sapratu. Tas ir ērti, ja ir dažādas bibliotēkas, kas savstarpēji izmanto vienas un tās pašas funkcijas, bet ja tas ir man lokāls fails un pie tam paša raxtīts, un citas funkcijas to neizmanto, tad varu arī to neraxtīt.

  6. #16
    Senior Member
    Jun 2006
    Cēsu novads
    988

    Kā jau teicu, rakstu ASMā, bet arī tur ir pieejama tā saucamā kompilācija, ja izpildās nosacījums. Es to lietoju, lai programma būtu universāla, piemēram izmantojama dažādiem dzelžiem. Ja tiek izmantots viens dzelzis, tiek kompilēts fragmentiņš, kas rausta vienu kāju, ja tiek lietots cits dzelzis, tiek raustīta cita kāja. Tas rada zināmas ērtības, bet var uztaisīt arī jucekli, it sevišķi, pieķeroties programmai pēc ilgāka pārtraukuma, kad daudz kas ir jau aizmirsies un nav pietiekami sīki nokomentēts. Pēkšņi izrādās ka kaut kāda, jau piemirsta #ifdef/#ifndef dēļ kaut kas svarīgs netiek nokompilēts, vai nokomilēts galīgi ne tas, ko vajadzēja. Ja visos gadījumos jākompilē to un tikai to, tad tas, nafig, nav vajadzīgs.

  7. #17
    Senior Member
    Nov 2009
    Jēkabpils
    2,055

    http://www.instructables.com/id/Ardu...s-faster-code/

    Rekur ir par kompilēšanas nosacījumiem. Mani arī pašreiz šitas interesē. Defaultā arduino izmanto pašu agresīvāko koda optimizāciju. Un tas tiešām tā ir. Aiz avr-gcc ir direktīva -Os.

  8. #18
    Senior Member
    Aug 2008
    565

    sasasa Tev nav ienācis prātā pārbaudīt visus dzelžus?

    Ea kādu pus gadu USBASP programmatoru lamāju, ka tas var ieprogrammēt īsus koduz, bet uz gariem nogļukoja gandrīz vienmēr.
    Domāju, ka kāds softisks gļuks.

    Beigās problēma izrādījas izkustināts kvarca rezonātora kājiņa lodējuma vietā, kura pa laikam zaudē kontaktu.
    Pielodēju kā nākās un viss aizgāja bez problēmām.

  9. #19
    Senior Member
    Mar 2011
    1,119

    Doma nav slikta, bet kā lai parbaudu to programmatoru - ir man tā ka uz 921600 viņš ik pa laikam negrib raxtīt iekšā, uz 256000 stabili raxta.
    Man ir šādi2 adapteri.Rakstu ar to kuram redzams uzsprausts dzeltenais jumperis, to otru pat neesmu paprovējis un pat nezinu ar ko viņš atšķiras un vai vispār ir lietojams ar ESP8266 (??) - būs jānoprovē ja tik viņam ir 3.3v...

    .. lai gan diez vai kāds bezkontakts vai slikts lodējums varētu radīt tik atkārtojamu gļuku, ka pēc taimera pārtraukuma aizkomentēšanas pārstāj buntoties wdt
     
     

  10. #20
    Senior Member
    Mar 2011
    685

    Ea kādu pus gadu USBASP programmatoru lamāju, ka tas var ieprogrammēt īsus kodus
    Vispār līdzīga problēma eksistē gan, bija man tā, ka uz MAC OSa kaut kāda konkrēta avrdudes versija neprogrammēja to, kas bija virs kaut kāda izmēra atsevišķiem procesoriem. Pazaudēju dienu meklējot problēmas savā kodā, tad radās aizdomas, ka problēma nav pie manis, raks'tiju supertam, pateica, lai lieku vecāku versiju. Jā, uzliku, strādāja, bet tad bija citas problēmas. Apnika jāties, sāku lietot Atmel ICE.

+