Jump to content

Arduino DIY projekti


AndrisBB
 Share

Recommended Posts

Pa lielam 4 varianti:

* Raksti C bez jebkadam abstrakcijam. Lai ieslegtu GPIO bus tada stila PORT_A->ODR = 0x01; 

* Izmanto LL (Low Level) HAL biblioteku. Butiba plani wapperi ap regjistriem. 

https://www.st.com/content/ccc/resource/technical/document/user_manual/2f/71/ba/b8/75/54/47/cf/DM00105879.pdf/files/DM00105879.pdf/jcr:content/translations/en.DM00105879.pdf

__STATIC_INLINE void LL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint32_t PinMask)

{

WRITE_REG(GPIOx->ODR, READ_REG(GPIOx->ODR) ^ PinMask);

}

 

* Izmanto pilno HAL biblioteku. Ka mana video piemera.

Reku laba gramata https://leanpub.com/mastering-stm32

* Raksti pats savu HAL biblioteku.(Domaju ka bezjedzigs variants)

 

 

Assableri isti neredzu kur tur pielietot


Pirms 10 minūtēm , Jurkins teica:

Kad es pirmo reizi ieslēdzu arduino, man bija liels pārsteigums arī par tiem 734 baitiem dēļ "blinka".

Nu uz STM tur ir diezgan daudz koda lai tikai tiktu lidz main funkcija. Parkopet flashu uz ram, setupot pulkstenjus, utt.

Link to comment
Share on other sites

Pamēģinot vienkāršu Blinky applikāciju izmantojot HAL un LL bibliotēkas, tāds minimāls kods aizņem:

 

LL:

/home/andris/Documents/Demo/Toolchain/bin/arm-none-eabi-size build/Blinky.elf
   text    data     bss     dec     hex filename
   1636      12    1564    3212     c8c build/Blinky.elf

 

HAL:

/home/andris/Documents/Demo/Toolchain/bin/arm-none-eabi-size build/Blinky.elf
   text    data     bss     dec     hex filename
   4356      20    1572    5948    173c build/Blinky.elf

 

Sanāk ka HAL aizņem 3 reizes, LL 10 reizes mazāk kā Arduino layers, lai tika paslēdzelētu GPIO

 

Reāli jau protams, jo lielāka applikācija mazāk nozīmes tam HAL bibliotēku lielumam.

 

Edited by AndrisBB
  • Patīk 2
Link to comment
Share on other sites

  • 1 year later...
ivans39

labdien vai ir kādam pieredze granulu degļa kontroliera {smadzenes} izgatavošanā uz ARDUINO platēm var būt varētu padalīties ,shēmas,sketch un programmas priekš arduino,

paldies

Link to comment
Share on other sites

AndrisBB

Ja tu domā hex failu tad nē.

Labākais ko tu vari dabūt būs pārvēst viņu assambly instrukcijās un tad no tā sadalīt fukkcijās utt.

  • Patīk 1
Link to comment
Share on other sites

AndrisBB

Un kur tu to .hex failu dabuji? .elf fails gadījumā turpat nav?

Link to comment
Share on other sites

ivans39

ar avrdude  nolasiju no arduino mega 2560 granulu degļa,ierakstot atpakaļ citā mega 2560 pieslādzot pie degļa viss strādā ,

elf fails nav

Link to comment
Share on other sites

ivans39

lasit           avrdude.exe -p atmega2560 -c wiring -PCOM12 -b115200 -Uflash:r:'printer_firmware'.hex:i   

 ierakstit   avrdude.exe -p atmega2560 -c wiring -PCOM12 -b115200 -D -Uflash:w:'printer_firmware'.hex:i

Link to comment
Share on other sites

AndrisBB

Neko vairāk arī neizdarīsi. Vari ar visādiem tūļiem (kautvai online) pārvērst uz ASM instrukcijām. Gudrākie tūļi visdrīzāk sadalīs pa funkcijām, atpazīs ciklus utt. Tad vari manuāli izpētīt ko kura funkcija dara un iedot nosaukumus utt. Bet nu oriģinālu kodu jau tu tur nedabusi.

Link to comment
Share on other sites

Jurkins

Off: Man reiz bija baigais pārsteigums, kad granulu katlā ieraudzīju 2560-to atmegu. Neatceros, vai atmegai varēja kaut kādu fusi  ieslēgt, lai nevar nolasīt. Škiet, ka bija.

Edited by Jurkins
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...