Jump to content

Assemblers


Jacob
 Share

Recommended Posts

Inspektors Caps
1 stundu atpakaļ, AndrisBB teica:

Varbūt tas r taspats Teams.

Tas ir cits produkts citai mērķauditorijai. Izej uz ielas un uzprasi cik cilvēkiem telefonos ir "Microsoft Team". Atbilde būs: "Ko?" Pēc tam uzprasi cik telefonos ir Skype. Atbilde būs: "Vai tad to kāds vēl lieto?" Ja Skype būtu normāli attīstīts, tad ne WhatsApp, ne Zoom nebūtu vispār. Tagad ir gan tie, gan vēl 101 cits līdzinieks, no kuriem globāli un kvalitatīvi lietojams nav vairs pilnīgi neviens. Un ne tikai programmas ir drausmīgas, bet izskatās, ka pat vienoties par vienotu komunikācijas protokolu 21. gadsimtā vairs nav iespējams, jo tagad katrs hipsteris ir pats sev ģēnijs. Gluži kā Raimis...

 

1 stundu atpakaļ, AndrisBB teica:

bosi tur redz strādājošu sistēmu, kuru upgreidojot nebūs nekāda praktiska ieguvuma

Tādēļ, ka akli un neredz iespēju ilgtermiņā samazināt ražošanas izmaksas un palielināt ienākumus, piedāvājot būtiski labāku un funkcionālāku produktu par konkurentiem. Vēsture jau neskaitāmas reizes ir parādījusi, ka labākais modelis gan stabilitātei, gan inovācijām ir:

  1. Izstrādā un ievies stabilu versiju (nevis hlamu).
  2. Lieto stabilo versiju un izstrādā jaunu stabilu versiju ar būtiskām inovācijām (nevis kā tagad pārlūku un Windows 10 versijas).

Labu piemēru ir daudz - tas pats Ethernet, Wi-Fi, IP protokols un pat Windows līdz 7 (ieskaitot).

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

Liam Ethernety
Pirms 22 minūtēm , Inspektors Caps teica:

Tas ir cits produkts citai mērķauditorijai. Izej uz ielas un uzprasi cik cilvēkiem telefonos ir "Microsoft Team". Atbilde būs: "Ko?" Pēc tam uzprasi cik telefonos ir Skype. Atbilde būs: "Vai tad to kāds vēl lieto?" Ja Skype būtu normāli attīstīts, tad ne WhatsApp, ne Zoom nebūtu vispār.

 

Tam, ka Skype popularitāte nokritās nav nekāda sakara ar to, kādu underlying tehnoloģiju Microsoft izmantoja. Tam pašam cilvēkam uz ielas būs dziļi vienalga, vai tur ir Electron vai kas cits. Par to uztraucas tikai maza cilvēku grupiņa boot forumā.

 

Pirms 26 minūtēm , Inspektors Caps teica:

Tādēļ, ka akli un neredz iespēju ilgtermiņā samazināt ražošanas izmaksas un palielināt ienākumus, piedāvājot būtiski labāku un funkcionālāku produktu par konkurentiem. Vēsture jau neskaitāmas reizes ir parādījusi, ka labākais modelis gan stabilitātei, gan inovācijām ir:

  1. Izstrādā un ievies stabilu versiju (nevis hlamu).
  2. Lieto stabilo versiju un izstrādā jaunu stabilu versiju ar būtiskām inovācijām (nevis kā tagad pārlūku un Windows 10 versijas).

 

Biznesa inkubatoros gan runā ko citu. Sākumstadijā ir svarīga ātra prototipēšana, MVP izlaišana, tālāk biežas izmaiņas un pielāgošana. Par stabilām versijām var domāt tad, kad ir stabils cashflows.

 

Link to comment
Share on other sites

Raimonds1

Ar visa taisīšanu no jauna biju domājis - tiešām visa.

Elementu bāze ir nomainījusies un kaut kādā mikrokontrolierī var dabūt iekšā tādas funkcijas, kādas pirms gadiem 5-10-20 bija tikai datoros.

Tāpat ir 2-4 un vairākkodolu procesori.

Programmēšanas valodas sintaksei var visus tos klaviatūras simbolus > ) )* aizstāt ar pilniem vārdiem vai smukiem krāsainiem kvadrātiem un bultiņām un labs  kompilators pārvērtīs to visu mašīnkodā, taču pati programma būs viegli lasāma.

Tāpat var uzreiz noteikt, ka visas programmas tiek rakstītas .32 un 64 bitu sistēmām ar vismaz 2 kodoliem un pārējie ir speciālgadījumi, kam ir speciālas pārneses sistēmas.

 

Tad vēl vajadzētu skaidri atšķirt, kuras ir tās cilvēka specifiskās zināšanas un prasmes, kas ļauj tam saprast un projektēt pašu būtību un jau SĀKUMA PROCESĀ  ieplānot labu sistēmu un kuras tomēr ir tādas tehniķa pseidozināšanas, kas palīdz tikai saprast, kā īpašī līkā veidā salabot kaut kādu ne pārāk labi uzprojektētu sistēmu. Kaut kā samazināt to NEVAJADZĪGO informācijas daudzveidību.

 

Nu, un sākumā, protams, vajadzētu īpaši sponsorētu programmu, kas vienkārši ar visādiem materiāliem stimuliem ieinteresē par tiem bitu, baitu un elektronikas, materiālmācības un sistēmu organizācijas pamatiem.

Labots - Raimonds1
Link to comment
Share on other sites

Raimonds1

Tad vēl vajadzētu kaut kā pārstrādāt to algoritmu pamatu mācīšanu. Pa nopietno, pa dažādām sistēmām un nozarēm un to algoritmu prasmi kaut kā kārtīgi pārbaudīt un ierakstīt kaut kādos profesijas reģistros. Ja kāds pārnesis noliktavas darbinieka programmu, kas sēž noliktavā visu dienu un komplektē preces uz pasūtījumu uz ģimenes ārsta programmu, kas pieiet pie datora, kaut ko izraksta, tad izdara vēl kādus 3 darbiņus citur, tad atkal pāris pie datora un tad atgriežas sākotnējā programmā un tas viss ir paņemts no noliktavas, tad šādam darbam jābūt kaut kādām sekām.

Teiksim, jāņem akadēmiskais pārtraukums uz gadu.

Link to comment
Share on other sites

Pirms 24 minūtēm , Inspektors Caps teica:

Cik saprotu, CPU ir 8-bit AVR, nezinu kāds asamblers. Drīzāk tīri interesanti būtu, ja Tu pats pakomentētu šo.

Jā CPU ir 8-bit AVR, assemblers ir no Atmel Studio. Par komentējamo piemēru. Kaut ko tādu varēja gaidīt. Vismaz kompilierim pietika prāta netaisīt garu ciklu, lai pabīdītu reģistrus par 14 pozīcijām. Bet, tā, būtībā viena bita vērtības noskaidrošana, un EOR ar jauno bitu vienalga uztaisīta baigi gari un sarežģīti. Tiek izmantots daudz reģistru. Izšķērdīgi. Bet, ja darbojas pārtraukumā, tad sākumā visi tie reģistri būs jāsabāž stekā, atgriežoties jāizvelk no turienes, bet katrs PUSH un POP aizņem 2 taktis. Kopā ļoti daudz taktis tikai kontrolsummas noskaidrošanai. Bet jādara vēl citas lietas. Konkrētajā gadījumā viens bits aizņem 64 taktis. Šādi darbojoties, neizdosies iekļauties un bit-bang nesanāks. Par reģistriem - bija jāizvēlas, vai nu apstrādāju pārtraukumu maksimāli ātri, upurējot daļu reģistru, un izdomājot, kā vietās, kur ātrums galīgi nav kritisks, iztikt bez tiem, vai arī riskēju neiekļauties tajās 64 taktīs.

 

1 stundu atpakaļ, Inspektors Caps teica:

Kādēļ tās dēļ kvarciem atšķirīgās CAN frekvences nenoteici ar osciloskopu vai loģisko analizatoru? Cik saprotu, tā mistiskā iemesla dēļ Tu taisīji bit-bang...

Ne gluži. Osciloskops ar ieraksta funkciju un CAN līnijas analizators man ir, tiesa nav apvienots vienā ierīcē, un es jau sākotnēji zināju, ka CAN līniju ātrumi ir atšķirīgi. Bet CAN kontrolierī ir mehānisms, kā to kompensēt. Bet lai tas darbotos, tas ir pareizi jānokonfigurē. Kā vienmēr, apgūstot, iepriekš nezināmu lietu, ne vienmēr viss datašītā izlasītais "pielec" ar pirmo reizi. Un ne jau tikai par CAN līniju ātrumiem. Lai pārbaudītu, kā kas darbojas, vajag paeksperimentēt. Viena lieta ir samērīt osciloskopā laika intervālu starp divām frontēm, pavisam kas cits - noskaidrot, kā to pašu intervālu ir samērījis pats procesors. Un bit-bang jau nebija jātaisa no nulles. Tas bija vēl no tiem laikiem, kad uz AT90S1200 vajadzēja realizēt seriālo portu, kura tam vienkārši tur fiziski nebija. Tāpat bija jau realizēts CRC16 priekš Modbus, un tāpēc CRC15 priekš CAN vairs nebija kaut kas pilnīgi no nulles apgūstams. Tādejādi, izmantoju iepriekšējo bagāžu, lai apgūtu ko jaunu. Man tas likās īsākais ceļš. Kam iepriekšējā bagāža ir cita, īsākais ceļš būs cits.

 

1 stundu atpakaļ, Inspektors Caps teica:

Tā vietā paņem kādu 32-bit MCU ar Cortex-M, MIPS vai drīz arī RISC-V, kam CAN ir dzelžos,

Pilnīgi piekrītu, BET - tie man vēl jāapgūst. Tas prasīs zināmu laiku, bet CAN problēma uzradās negaidīti un vajadzēja atrisināt ātri. Nevarēju pateikt, atvainojiet, man vajadzīgi 2 mēneši lai mācītos. Kāpēc neapguvu to jau sen? Attaisnojuma, īsti nav.

Link to comment
Share on other sites

AndrisBB

Ko tur apgūt, ņem kautkādu STM32, vai ko tamlīdzīgu un raksti kodu. Materiālu no kā mācīties vairāk nekā saprašanas.

Mūsdienās čakarēties ar 8-bit AVR ir bezsakars, viņi ir dārgāki, lēnāki, ēd vairāk enerģijas, mazāk peripheriāļu un iespēju nekā kautkāds Cortex vai kas tamlīdzīgs.

Kautkādi oldscool PIC tanī pašā kategorijā bāžami, bet nez kapēc ļoti patīk elektroniķiem. Tas laikam arī būs tas iemesls, kapēc viņi populāri, iemācījušies vienu ASM paveidu, arhitektūru un tad veģitē uz tās mūžīgi. 

 

Reku laba grāmata https://leanpub.com/mastering-stm32

Kad iebrauksi viņu HAL bibliotēkā un sapratīs cik tur brīziem daudz nejēdzības, tad var mēģināt ko optimizēt.

Link to comment
Share on other sites

Inspektors Caps
Pirms 31 minūtēm , Liam Ethernety teica:

Tam, ka Skype popularitāte nokritās nav nekāda sakara ar to, kādu underlying tehnoloģiju Microsoft izmantoja.

Tam ir sakars ar to, ka gan pie vadības, gan izstrādes ir debīleņi. Debīli ir debīli it visā - tehnoloģijas, protokolu, formātu, interfeisa, funkciju un visa cita izvēlē un realizācijā.

 

Pirms 34 minūtēm , Liam Ethernety teica:

Biznesa inkubatoros gan runā ko citu.

Cik biznesa inkubatoros ir radītas tāda mēroga tehnoloģijas kā Ethernet? Cik no tur mākslīgi radītajiem startupiem izdzīvo ilgtermiņā? Nožēlojams procents... Kur radās MikroTik? Vai no mākslīgi radīta startupa, kur 80% darbinieku ir Twitter un Facebook "PR menedžeri" un citi "speciālisti", vai no tā, ka daži cilvēki ilgi un rūpīgi izstrādāja RouterOS platformu, kas ir šī uzņēmuma panākumu pamatā? Par startupisma sociālistiski subsidētajiem "dižajiem sasniegumiem" vari iet stāstīt hipstertirliņiem un meitenītēm iestādēs pie ESRS un citu fondu dalīšanas. Man vari pat necensties, es tad labāk noskatos kādu Silicon Valley sēriju, kur viss tas absurds ir parādīts visā krāšņumā...

 

Pirms 18 minūtēm , Raimonds1 teica:

Tad vēl vajadzētu skaidri atšķirt, kuras ir tās cilvēka specifiskās zināšanas un prasmes

Evolūcija un vēsture sen ir parādījusi - intelekts un prakse. Šībrīža sistēma nestimulē ne vienu, ne otru. Un vispār iesaku paskatīties spogulī...

Link to comment
Share on other sites

Mezavecis
Pirms 12 minūtēm , Inspektors Caps teica:

Un vispār iesaku paskatīties spogulī...

Sāc ar ar sevi. Jau vismaz 10 gadus maļ vienu un to pašu plati. Bet tā jau vienmēr - vislielākie eksperti atrodas dīvānā. Tu esi tam spilgts piemērs - gudri muld par programmēšanu. lai gan programmētājs nekad nav bijis (un nebūs).

Link to comment
Share on other sites

Pirms 5 minūtēm , AndrisBB teica:

Ko tur apgūt, ņem kautkādu STM32, vai ko tamlīdzīgu un raksti kodu.

Tak ir jau paņemts. Turu rokā, pirms kādiem 3 gadiem pirktu STM32 DISCOVERY dev boardu. Būs jau paspējusi morāli novecot. Pirms mēnešiem 3 pirktais 3D printeris tā arī stāv neizpakots. Tak vienmēr gadās visādi, steidzami dzēšami, ugunsgrēki. Tā nu sanāk, ka tā vietā, lai paņemtu pareizu āmuru, kārtīgi notēmētu, un iedzītu naglu ar vienu sitienu, ņemos ar nepareizu instrumentu, apdauzīdams pirkstus, lamādamies un locīdams naglas. Laika nav! Laika nav? Toties muldēt forumā laiks atrodas. Laikam jau tomēr slinkums.

  • Haha 1
Link to comment
Share on other sites

Raimonds1

Vispār topika autoru var apskaust. Te ir tādas ceļamaizes pieejamas, ka nezin tik ko izvēlēties.

 

Par to manu zināšanu

 

 

sinusfv.png

 

 

Te tāda kantaina nepareiza sinusoīda ir uzzīmēta. Algoritmu limenī es tai varu sarakstīt visus parametrus un visas darbības, kas jāveic un reāla iekārta, kuru taisītu tie, kas ar to nodarbojas, tādu "sinusoīdu" arī uzražotu. Elektronikas pamatus zinu, ciparu elektronikas arī. Loģisko shēmu līmenī.

 

Taču tas man tikai tāds teorētisks projekts.

 

Labots - Raimonds1
  • Haha 1
Link to comment
Share on other sites

Inspektors Caps
pirms 3 stundām , Mezavecis teica:

lai gan proglamerētājs nekad nav bijis (un nebūs)

Izlaboju. :) Bet, ak vai, kāds ir atcerējies mūsu seno diskusiju par JavaScript kompilēšanu uz bināru formātu un nevar samierināties ar to kā pielika bikses, kad izrādījās, ka industrijas gigantu izstrādātais WebAssembly ir tieši tas, ko es stāstīju, kamēr īstenais "eksperts" mani "apgaismoja" cik stulba ideja tā ir...

 

pirms 4 stundām , AndrisBB teica:

Kad iebrauksi viņu HAL bibliotēkā un sapratīs cik tur brīziem daudz nejēdzības, tad var mēģināt ko optimizēt.

Es ieteiktu tālāk par vieglu paspēlēšanos tajā bibliotēkā nemaz neiedziļināties - lieks laika tēriņš. To izstrādā bezsmadzeņu pērtiķi un studentes Tunisijā, kur vidējais IQ ir 83 (tas pats līmenis, kas slavenajiem indiešiem). Pat turienes vietējie "ģēniji" priekš Eiropas ir tikai viduvēja meža veča līmenī. Attiecīgi tā bibliotēka ir pilnīgi nekam nederīgs superlīks un neērti lietojams mēsls. Labāk tad sākt ar šo rakstu sēriju un pie reizes arī nomigrēt uz C ikdienai. Tur kā reizi piemēri ir paralēli priekš AVR un STM32. Assambler tāpat nekur nepazudīs, vienkārši izmantosi to pie reālām vajadzībām, nevis pilnīgi visu rakstīsi tajā.

 

pirms 4 stundām , M_J teica:

Pilnīgi piekrītu, BET - tie man vēl jāapgūst.

Nu, ar Tavām zināšanām tas ir kā divus pirkstus... Kopējie programmatūras izstrādes principi taču tie paši, perifērijas programmē tāpat, tikai to ir vairāk un funkcionālākas, faktiski atšķiras tikai CPU kodols. Un programmēšana gan C, gan pat ARM assamblerī ir vieglāka kaut tādēļ vien, ka 8/16/32-bit operācijas notiek ar vienu instrukciju. Pie tam tās gandrīz visas notiek vienā taktī, izņemot dalīšanu, kas AVR nemaz nav, un vēl dažas. Par DSP un FPU esamību nemaz nerunāšu...

 

pirms 4 stundām , M_J teica:

Jā CPU ir 8-bit AVR, assemblers ir no Atmel Studio.

Starpcitu, vēl tīri ziņkāre.. Tavā kodā "movw    ZH:ZL,XH:XL" ir fiziski viena instrukcija vai tikai tā assamblera pieraksts, ko pārvērš vairākās instrukcijās?

Labots - Inspektors Caps
Link to comment
Share on other sites

Pirms 18 minūtēm , Inspektors Caps teica:

Starpcitu, vēl tīri ziņkāre.. Tavā kodā "movw    ZH:ZL,XH:XL" ir fiziski viena instrukcija vai tikai tā assamblera pieraksts, ko pārvērš vairākās instrukcijās?

Viena no dažām 16 bitu instrukcijām, kas ir AVR kontrolieros, izpildās vienas takts laikā.

Link to comment
Share on other sites

AndrisBB
Pirms 31 minūtēm , Inspektors Caps teica:

Labāk tad sākt ar šo rakstu sēriju un pie reizes arī nomigrēt uz C ikdienai.

Tak viņiem ir vairāks versijas bibliotēkām, HAL un LL. LL īpasi neatšķiras no tā ko tu tai linkā ieliki, tik mazliet ērtāk lietot.

HAL ar nav ne vainas, kad palieto viņu ilgāk, saprot tās plusus un mīnusus.

Link to comment
Share on other sites

Inspektors Caps

@AndrisBB, nekas tur nav OK. Es visas tās viņu bibliotēkas esmu izmēģinājis un izķidājis līdz saknēm un saku pilnā nopietnībā - HAL ir pilnīgi un galīgi līks. Tam "nav ne vainas" tikai tad, ja ir pieņemams, ka izstrādātā firmware raustīsies, kārsies un citādi gļukos. Kopš 2007. gada, kad sākās STM32, viņi nav spējuši uzrakstīt pareizi pat pin toggle funkcijas. USART viņu realizācijā vispār nav spējīgs asinhroni saņemt nepārtrauktu datu plūsmu - visu laiku tiek veikts receive daļas enable-disable un, lai transakcija beigtos, tiek gaidīts konkrēts baitu skaits. Pat vienkārša kritiskā sekcija, kas vispār eksistē tikai priekš tam, lai pasargātu koda fragmentus no interruptiem, nav interruptu droša. :D Bet tā tiek izmantota gandrīz visos HAL draiveros... Attiecīgi gandrīz viss kods nav interruptu drošs un ir līks vēl neskaitāmos citos veidos. Pie tam tas viss ir arī vienkārši bloatware, jo to raksta Tunisijas praktikanti un vienkārši debīliķi. Tur ir nenormālas bezjēdzīgu mainīgo jūras un pārsarežģītas konstrukcijas dēļ C nezināšanas un vienkārši nedomāšanas ar galvu. Līdz pat tādam līmenim kā šeit rādīji piemēru ar if-else jūru viena x & 1 vietā.

 

Kompleksākas lietas, kas saistītas ar RTOS, Ethernet, lwIP, USB, SDIO, FatFS u.c., ar HAL "draiveriem" un viņu integrācijas kodu vienkārši nestrādā vispār.

 

LL (un lielā mērā arī vecā SPL) bibliotēka nav tik līka, toties ir pilnīgi bezjēdzīga, jo tur vienkārši nekā nav. Lai ar LL vienā reģistrā uzstādītu divus atsevišķus bitus, ir jāuzraksta divas C rindas, kas pārvēršas 6 instrukcijās. Ar reģistriem savukārt ir jāuzraksta viena C rinda, kas pārvēršas 3 instrukcijās. Plus, rakstot ar LL, ir jālasa gan reģistru dokumentācija un jāmācās nosaukumi, gan vēl arī jāpēta LL kods, jāmācās tā nosaukumi un visu laiku galvā jātulko no LL uz reģistriem un atpakaļ. Ļoti "efektīvs" instruments...

 

Pie tam HAL ir ne tikai līki implementēts, bet arī tā arhitektūra ir trula. Tā ne tikai nepalīdz veidot sakarīgu visas firmware arhitektūru, bet vēl visu laiku ir jācīnās ar HAL arhitektūras stulbumiem. HAL tēlo high-level bibliotēku, bet tāda nav. Nepārtraukta USART datu plūsma ar interruptu drošu lock-free (bez interruptu bloķēšanas!) FIFO buferi? Nav un nekad nebūs, jo Tunisijas pērtiķu smadzenēm tas nav sagremojams. Ja salīdzina ar saprātīgu kodu, tad HAL reāli nav neviena plusa! Vienīgie veidi kā tikt pie kvalitatīviem un strādājošiem draiveriem ir:

  1. Ar reģistriem uzrakstīt savus pa īstam high-level draiverus un OS abstrakcijas slāni.
  2. Ņemt ChibiOS vai ko līdzīgu.
  3. Pirkt komerciālas bibliotēkas no SEGGER, Express Logic un līdzīgiem.

Tā nu sanāk, ka STM32 ir vieni no labākajiem mikrokontrolieriem, bet viņu koda bibliotēkas ir absolūti lielākie mēsli, kādus visā embedded industrijā esmu redzējis. Un, protams, ka tikai sakritība - ST mikrokontrolierus izstrādā Francijā un Itālijā, bet draiverus Tunisijā... Diez kur varētu būt problēma? Varbūt Raimis spēj rast atbildi?

Labots - Inspektors Caps
  • Patīk 1
Link to comment
Share on other sites

Jurkins

Nja, "programmētājs" esmu tikai epizodiski (pilnmēness😁) un brīvajā laikā, darbus man nodot neprasa un par to nemaksā. Tāpēc šajā tēmā nespamoju. Bet nu jā, izlasot pēdējo @Inspektors Caps komentāru... tieši tādiem (un vēl krievu) vārdiem varētu raksturot manu iepazīšanos ar HAL 😁

Labots - Jurkins
  • Haha 1
Link to comment
Share on other sites

AndrisBB
Pirms 56 minūtēm , Inspektors Caps teica:

Kompleksākas lietas, kas saistītas ar RTOS, Ethernet, lwIP, USB, SDIO, FatFS u.c., ar HAL "draiveriem" un viņu integrācijas kodu vienkārši nestrādā vispār.

Kas tieši tev tur nestrādā, es visaiku lietoju viņu ģenerēto kodu gan ar FreeRTOS, gan USB, gan Ethernet un FAT_FS un viss darbojas. Protams ka ik pa laikam kautkas jāpielabo, bet tas ir sīkums salīdzinot ar to ka ja tas viss jāraksta no nulles.

 

Skaidrs ka bibliotēka, kura domāta, lai darbotos uz visiem iespējamajiem STM32 kontrolieriem būs pilna ar kodu, kas iespējams nav vajadzīgs, ja skaidri zin kuru tieši MCU tu lietosi. Kautkādiem tur sīkumiem kā GPIO, SPI, I2C utt pats var uzrakstīt funkcijas, bet nejau Ethernetam vai USB, tas vienkārši aizņems pārāk daudz laika. Protams ja visa misija ir raksīt kautkādu perfekto USB kodu, tad skaidrs ka var čakarēties, bet ja ir doma ir izveidot iekārtu, kas kautko reāli arī dara, tad tam visam nav laika. Kāda jēga no perfektās iekārtas, ja viņa vienkārši ir pārāk dārga lai kāds viņu pirktu un nekad netiek izlaista. Vēlāk kad iekārta reāli darbojas un kādam viņa arī ir vajadzīga, tad var čakarēties un kautko optimizēt.

 

Pietam tās bibliotēkas ir bezmaksas. Kāda jēga gaudot par to ka bezmaksas bibliotēka un visi ar viņu saistītie tūļi nav perfekti :D uztaisi labāks, tad par velti, nevis tikai runā. Nopelnīsi miljonus. Varbūt pat ST tev samaksās.

Labots - AndrisBB
Link to comment
Share on other sites

Raimonds1

Katrā nozarē ir daudz apnicīga, salīdzinoši vienkārša, ilgi darāma, un, kas pats būtiskākais, visiem vajadzīga darba, ko veic ne pārāk labi apmaksāti un ne pārāk talantīgi darbinieki, kas domātu kodā un sapņos redzētu, kā tās datu paketes tur staigā, kā kontrolē, vai visi dati ir tur kur jābūt un tā tālāk. Tie ir "tehniķi", kas domā if else ja tā, tad šitā kategorijās, faktiski tādi kā elektronikas labotāji, kas pārsprauž gatavus, citu izstrādātus jau darbojošos blokus, nevis paši tos projektē un saprot, kas tur iekšā darās.

 

Tur ir jābūt kaut kādai proporcijai starp to zināšanu, kurus blokus kā salikt un tomēr jēgšanu, kā un kāpēc tas vispār darbojas. Vēl man ir tādas nelabas aizdomas, ka, ja tas viss būs pārāk efektīvs un vienkāršs, tad nevarēs tik daudz paprasīt no patērētāja to naudu. Taču tā smirdīgā nauda kādam ir jāpelna un pārāk efektīvas sistēmas nojauks daudzas barības ķēdes un tur visi būs nikni.

Link to comment
Share on other sites

Inspektors Caps

@ieleja, nu taču lai piedāvā. Uz ātru skatu tur ir iestrādāti "service ID" un "content ID". Gan jau plāns ir tāds, ka tos izsniedz Ķīnas komunistiskā partija. :D Bet, ja nopietni, tad, piemēram, IP taču tieši palēnām pāriet no v4 uz v6, bet abi ir stabili, strādājoši un viss notiek bez stresa. TCP ir 1974. gadā radīts protokols, kas nodefinēja terminu "internet". Šobrīd tam ir 46 gadi un tas pilnīgi noteikti netiks aizstāts tuvākajā nākotnē. Lai arī tas nav perfekts, Tev neliekas, ka tas tomēr ir radīts pietiekoši labs un stabils savam laikam un tā laika nākotnei? Tā pa lielam man vienīgais iebildums pret to ir tas, ka tas ir nedaudz par daudz komplekss. TCP protokols IP stekā aizņem nomācoši lielāko koda blāķi. Salīdzinoši UDP, IP un ARP ir smieklīgi.

 

@AndrisBB, nav runa par dažām kļūdām un optimizāciju, bet par smagi līku traģēdiju. STM32 sērijām katrai ir savi HAL draiveri un nav runa par kaut kādiem koda fragmentiem priekš dažādām hardware modifikācijām sērijā, bet vienkārši bezjēdzīgiem murgiem pat vienkāršās funkcijās. Es taču teicu - USART, pat pin toggle. Un kā var kaut kas strādāt, ja visur ir kritiskā sekcija, kas nestrādā? Tas, ko Tu saki par "šausmīgo" Ethernet draivera izstrādi, ir vienkārši fantāzijas kas saklausītas no interneta diletantiem, kuri nekad to nav darījuši. Realitātē vismaz uz STM32 uzrakstīt Ethernet draiveri ir grūtāk kā USART, bet vieglāk kā I2C draiveri. Saku to no savas pieredzes, jo tieši to sen jau esmu izdarījis... Vienreiz pasēdi kādas dienas vai kaut nedēļas, bet toties viss strādā. Ar ST kodu nestrādās nekad (vismaz pārskatāmā vairāku gadu nākotnē). Konkrēti par lwIP... Link up/down menedžēšana ir līka un neatbilst lwIP API. DHCP tas pats, plus vispār viņiem nekas nebija jādara un būtu viss strādājošs. Tipiski pērtiķiem... Un vispār viņi savā tīkla kodā vienkārši pilnīgi visur ignorē lwIP multi-thread prasības. Ar šo vien jau visa tīkla funkcionalitāte jau ir nolemta. Tāpat viņi vispār nesaprot kas ir compiler barrier, kas vispār attiecas uz visu kodu, ne tikai tīklu. Ļoti daudz kur tās trūkst, bet bez tām, ieslēdzot optimizāciju, viss saiet dēlī. Tālāk, ja CPU ir Cortex-M7 (STM32F7 un STM32H7 sērijas), tad svarīgas kļūst arī memory barrier instrukcijas un/vai atmiņas tipu konfigurēšana ar MPU, kā arī D-cache kešatmiņas menedžēšana. Tur tas pats stāsts - nejēdz un lielāko daļu ignorē. Dēļ abu veidu barjeru neesamības visa tā mēslu kaudze visu laiku trāpa uz dažādiem race condition. Savukārt STM32H7 vispār ir sarežģīta arhitektūra un citādāka Ethernet perifērija ar pilnīgi citu HAL draiveri - tas pilnīgi vienkārši ir disfunkcionāls by design un nespēj strādāt vairāk kā ar kādu ping testu un triviālām "Hello world!" prasību līmeņa aplikācijām.

 

Pirms 27 minūtēm , Raimonds1 teica:

Vēl man ir tādas nelabas aizdomas, ka, ja tas viss būs pārāk efektīvs un vienkāršs, tad nevarēs tik daudz paprasīt no patērētāja to naudu.

Tu taču esi filozofs un fantasts, bet pat Tu neredzi to, ka ar krietni efektīvāku sistēmu rodas jaunas funkcijas un pielietojumi, par ko savukārt no patērētāja var paprasīt vēl daudz vairāk? Pie tam tas būs nevis ar strīdiem no sērijas "bet Jūs taču jau vienreiz to labojāt", bet "wow, kādas jaunas iespējas" un viņš pats atdos vēl lielāku naudu ar smaidu, aizies mājās laimīgs un pēc tam ar savu jauno ideju nāks tieši pie Tevis.

Link to comment
Share on other sites

Inspektors Caps
pirms 1 stundas , AndrisBB teica:

Pietam tās bibliotēkas ir bezmaksas. Kāda jēga gaudot par to ka bezmaksas bibliotēka un visi ar viņu saistītie tūļi nav perfekti :D uztaisi labāks, tad par velti, nevis tikai runā. Nopelnīsi miljonus. Varbūt pat ST tev samaksās.

Vēl viens aplams arguments. Tīri kā pretpiemēri - FreeRTOS, lwIP, FatFS, Mbed TLS, BearSSL, uECC un pat viss ChibiOS arī ir par brīvu un open source, bet nav mēsli. Citiem vārdiem sakot, gan bezmaksas, gan maksas produkti var būt gan labi, gan mēsli, un apkārt netrūkst piemēru visām kombinācijām. ST vadība neapjēdz, ka daudzi neizvēlas viņu mikrokontrolierus tieši un tikai dēļ viņu programmatūras "līmeņa". Viņu vadībai svarīgāks ir politiskais pasūtījums imitēt atbalstu bijušajai Francijas kolonijai un līst pakaļā "vienlīdzībai". Tā kā nemaksās viņi ne kapeiku, jo viņi pat ignorē kļūdu reportus un pat gatavus kvalitatīvus koda fragmentus, ko tauta viņiem piedāvā viņu forumā.

 

Savām vajadzībām jau esmu uzrakstījis draiveru bibliotēku, kooperatīvo OS ar software taimeriem, draiveru OS adaptācijas slāņus FreeRTOS un tam kooperatīvajam, propertiju menedžēšanas sistēmu, web serveri ar dinamisku divpusēju AJAX datu apmaiņu uz lwIP, robustu bootloader un vēl visu ko. Ir doma to kooperatīvo OS uzdāvināt pasaulei ar MIT vai BSD licenzi. Tās ir tikai 300 rindas (bez komentāriem) standarta C koda, bet "bare metal" izstrādi ar saviem taskiem un taimeriem tās sagriež kājām gaisā. Arduino pasaulē tas var novest pat līdz nelielai revolūcijai, kas likvidē setup()/loop() amatierismu. Tikai neesmu pārliecināts vai to vajag darīt... No vienas puses es neko nezaudēju, bet no otras, ja jau visi taisa un lieto sūdus, kādēļ man par velti atdot kaut ko labu? Kā darītu jūs - citi šeit esošie izstrādātāji un citādi tehniskie? :)

Labots - Inspektors Caps
Link to comment
Share on other sites

AndrisBB
Pirms 15 minūtēm , Inspektors Caps teica:

Arduino pasaulē tas var novest pat līdz nelielai revolūcijai, kas likvidē setup()/loop() amatierismu.

Neesi mazliet sasapņojies? :D

Arduino ir populārs nevis tapēc ka labs vai kāds tur, bet tapēc ka vienkāršs un tāds lai tieši amatieri varētu viņu lietot, taisīts viņš tika priekš mākslas studentiem, nevis programmētājiem. Plus bij īstajā laikā, īstajā vietā. Pats īstā Arduino autors (Wiring biblotēka) no tā visa nav saņēmis neko un neviens par viņu nav dzirdējis neko.

 

No sākuma dabon lai kaut 3 citi lietoāji izmanto tavu kodu, tad var runāt par revolūcijām.

Labots - AndrisBB
Link to comment
Share on other sites

Inspektors Caps

@AndrisBB, no otras puses lwIP no zviedru institūta viena čaļa projektiņa pārvērtās par globāla mēroga nopietnu un veiksmīgu open-source. FreeRTOS tāpat, plus ar paralēlu komerciālu daļu. Bet vispār man ir pilnīgi vienalga kas tajā Arduino pasaulē notiek vai nenotiek - tikai saku, kas var sanākt. Ņem vērā, ka tas ir kooperatīvs OS un tam nav nekāda multi-threading ar preemptive pārtraukšanu. Attiecīgi nav arī nekādu thread sinhronizācijas mehānismu, tikai triviāli eventi priekš sinhronizācijas ar interruptiem - šajā ziņā tas ir tīrs "bare metal". Aplikācijai sanāk tas pats kods, ko viņi raksta tagad, tikai vēl mazāks un vienkāršāks.

 

@ieleja, atgādini par ko stāstīju agrāk. Taču to mazo OS tiešām, ja publicēšu, tad tikai kā īstu dāvanu pasaulei bez nodoma nopietni ar to pelnīt. Nu, ja nu tikai ar to Donate pogu, ko @ImissimI minēja. Sanāk tāda kā morālā nodeva par to, ka es pats izmantoju citu cilvēku bezmaksas open-source bibliotēkas. :D  No tā visa, kas ir sarakstīts, tā OS tāpat ir tikai maza daļa... Pelnīšanai ir un būs citas daudz lielākas sistēmas. :)

Link to comment
Share on other sites

Pirms 50 minūtēm , Inspektors Caps teica:

Tikai neesmu pārliecināts vai to vajag darīt... No vienas puses es neko nezaudēju, bet no otras, ja jau visi taisa un lieto sūdus, kādēļ man par velti atdot kaut ko labu? Kā darītu jūs - citi šeit esošie izstrādātāji un citādi tehniskie?

Pirmkārt: te tak neviens nesapratīs par ko tu tur raksti, izņemot @AndrisBB, bet tev pat viņu neizdevās ieinteresēt - jāsazīmē mārketings, jāuztaisa prezentācija ar bildītēm, grafikiem, pros & cons analīzēm.

 

Otrkārt: rodas iespaids, ka tu neesi drošs par to kā ar savu sastrādāto vai savu kompetenci tikt pie piķa - that's not good - piķis ir izšķirošais faktors, ja beigās paliec bešā, tad iegūldītais darbs bezjēdzīgs.

Link to comment
Share on other sites

AndrisBB

Par to jau arī runa ka tur ir bezgala daudz šķēršļi, lai kāds lietotu tavu bilbiotēku OS.

 

Pirmāmkārtām vispār ir kautkā jāuzzin par tādas esamību, otrāmkārtām jābūt labam aprakstam par to ko viņa dara, jo tur var būs pasaulē labākāis kods, bet ja uzreiz nevar saprast kas tas ir un nav dokumentācijas, tad skaidrs ka lietotājs izvēlēsies STM HAL vai FreeRTOS.

Lielākajā daļā gadījumu kautkas efektīvs un ātrs, neiet kopā ar viegli lietojams un saprotams.

Bezgala daudz lietas ko pārvarēt, ja par to prasa vēl naudu, tad dokumentācijai ir jābūt ekselentai.

 

Dokumentācija bij viena no lielākajām FreeRTOS problēmam, daļēji ir vēljoprojam, pats Ričards to ir teicis daudzes reizes, esu saticis viņu vairākkārt un esam par to runājuši. 

Labots - AndrisBB
Link to comment
Share on other sites

Inspektors Caps

@AndrisBB un @camel, es taču teicu, ka tas OS, ja būs, tad tikai ar MIT vai BSD licenzi pilnīgi nekomerciālā nolūkā. Un HAL ir draiveri, bet te ir runa par OS kerneli. Līdzīgi kā FreeRTOS, tikai tas ir RTOS ar multithreading un tādēļ ir citā klasē - sarežģītāks, bet toties real-time. Savukārt kods priekš kooperatīva kerneļa ir tajā pašā sarežģītības līmenī kā priekš bare metal.

 

@ieleja, ā, tādā gadījumā nē - tas OS ir tikai maza daļa no lielā projekta jeb 3 faili no 130+ tā projekta ietvaros uzrakstītiem. Viens .h, viens .c un vēl viens nomaināms .h, kurā ir pāris rindas, kas ir specifiskas konkrētai CPU arhitektūrai. Tas gan visiem Cortex-M der viens un ir doma uzcept arī priekš AVR. Koda stils kā uECC - pāris funkcijas (tam OS ir 10 gab.), kas ir tik pašsaprotamas, ka pietiek ar nelielu skaidrojumu komentāros un kādu Example.c.

 

Pirms 23 minūtēm , AndrisBB teica:

Lielākajā daļā gadījumu kautkas efektīvs un ātrs, neiet kopā ar viegli lietojams un saprotams.

Bet nav arī tā, ka tas nekur nebūtu iespējams. BearSSL un uECC lietošana ir prasta kā zābaks, bet kvalitāte un performance top līmenī. FreeRTOS manuprāt arī ir diezgan viegli lietojams, bet tajā jau laikam daudzi man nepiekritīs...

Link to comment
Share on other sites

Inspektors Caps
Pirms 43 minūtēm , AndrisBB teica:

Dokumentācija bij viena no lielākajām FreeRTOS problēmam, daļēji ir vēljoprojam

Tai pat laikā pat tā ir daudz labāka kā daudz kam citam un te var lietot to argumentu, ka tas ir par brīvu. Lasām to, kas ir, ja nepietiek, skatāmies kodu un viss notiek. Proporcionāli pret to, cik daudz FreeRTOS izmanto visā industrijā, ar to saistīto problēmu procents ir niecīgs.

 

Lūk, ar lwIP gan šajā ziņā ir sliktāk - tā ir diezgan liela un kompleksa bibliotēka, bet dokumentācija ir pašvaka. Tikai īstā problēma nav pat tur, bet tajā faktā, ka tauta jau nelasa pat to, kas ir! Linkus uz Common pittfalls un Multithreading var kaut katru dienu bāzt acīs - nu, taču principā nelasīs! Tikai turpina klikšķināt CubeMX un brīnīties kādēļ nekas neiet ar līko kodu, ko rakstījuši ST Tunisijas pērtiķi, kuri arī neko nelasa...

Link to comment
Share on other sites

AndrisBB

Tomēr nav īsti korekti salīdzināt LWIP ar FreeRTOS. Pirmais tiešām ir bezmaksas produkts no kura neviens naudu nepelnīja. Kamēr FreeRTOS tomēr vairāk vai mazāk bija un ir komerciāls produkts, vesela ko kompānija nodarbojās ar tā popularizēšanu, lietotāju atbalstu (par naudu) utt. Paskaties OpenRTOS, SafeRTOS versijas, kautgan tagad jau viņi visi vairāk vai mazāk pieder Amazon.

Link to comment
Share on other sites

AndrisBB

Nu pirmāmkārtām jau STM32 nav nekāds etalons, lietoju arī Freescale NXP LPCxxx kontrolieriem, tur HAL varētu būt pat tuvāks ICapa piemēriem, Silicon Labs EFM32 visādus Gecko kontrolierus, kuri ir ļoti interesanti un kods ir pilns ar labas kvalitātes dokumentāciju, piemēriem utt.

 

kautkas tamlīdzīgs.

LPC_GPIO0->FIODIR |= (1<<4); // Config P0.4 as Ouput

LPC_GPIO0->FIOSET |= (1<<4); // Make ouput High for P0.4

 

Caps te pa lielam arī dramatizē par to STM32 HAL bibliotēkas kvalitāti. Ok, tur ir tā kā viņš teica ka UART piemēram nav iespējams eneiblot RX interruptu mūžīgi un tik krāmēt ienākošos datus kautkādā bufferī, bet nākas norādīt cik baitus gribi saņemt, vai nākas eneiblot interruptu pēc katra baita. Bet nu tie visi ir sīkumi, ja nepatīk kā tā funkcija darbojas, tad uzraksti savu, par pamatu ņemot jau esošo kodu. Vismaz nav dienām jāurbjas caur datashēetu, lai izpētītu ko katrs bits dara reģistros, kods ir diezgan pašdokumentējošs un uzreiz var saprast kas tur notiek.

 

Tas pats arī ja reāli grib sākt kautko rakstīt, OK liela daļa funkcijas nav perfektas, bet iesākumam der, tīri lai saprastu kā kas darboojas. Pēctam var pētīt sīkāk, kā katrs peripherālis darbojas. Kautvai tas pats CAN tavā gadījumā. Ja jāsāk no nulles, tad aizņems kādu laiku, lai tiktu pie kautkā kas vispār kautko dara. Tas nav AVR un ir nepieciešams diezgan daudz koda, lai vispār pulksteņus eneiblotu, nokonfigurētu viņus utt. Tas pats arī ar visiem pinmuxiem utt.

 

Īsumā, ja ilgs laiks pavadīts ar STM32, vai kautvai ARM Cortex kā tādiem (jo pamati jau tie paši), tad var zīmēties un teikt ka HAL sūds, bet ja nekas nav darīts ar Cortex vispārībā, tad tas HAL ir lielisks iesākums.

 

 

 

 

 

Labots - AndrisBB
Link to comment
Share on other sites

Tas CAN drīzāk bija tāds negribēts gadījums, ar kura tik smalku izpēti nebiju plānojis ņemties. Ja viss būtu aizgājis uzreiz bez ķeršanās, nebūtu dziļāk līdis, bet ja reiz ielīdu, tad vienkārši nevarēju naktī gulēt, kamēr nebiju visu izķidājis pa bitam. Ir viena cita lieta, ar kuru gribētu eksperimentēt, un, kam STM32 varētu būt piemēroti (bet varbūt arī ne). Tas būtu tā saucamais multi portu DC-DC pārveidotājs. Vienkāršots apraksts - ir vairāk kā divi (konkrētajā gadījumā 3), savstarpēji izolēti, līdzsprieguma avoti, bet tādi kas darbojas gan kā avoti, gan kā patērētāji (piemēram, akumulatori). Pa vidu vajag pieslēgt DC-DC pārveidotāju, kas var enerģiju pārpumpēt jebkurā virzienā. Tādas iekārtas ir aprakstītas literatūrā. Pie katra akumulatora ir pieslēgts pilnais tilts no MOSFETiem, starp tilta pleciem ir augstfrekvences transformatora tinums. Visi trīs tinumi ir uz vienas serdes. Tātad kopā 12 MOSFEti. Slēgājot šos 12 tranzistorus noteiktā secībā, enerģiju var pumpēt jebkurā virzienā. Tik tālu realizācija notiek bez īpašām pūlēm. Līdzīgu pārveidotāju esmu realizējis arī pats uz AVR. Bet, lai tuvinātu šāda pārveidotāja lietderības koeficientu 100% , ir svarīgi minimizēt tranzistoru pārslēgšanās zudumus. To dara, realizējot tranzistoru atvēršanos un aizvēršanos momentos, kad vai nu strāva caur tranzistoru ir 0 (ZCS), vai spriegums uz tranzistoru ir 0 (ZVS). To var realizēt vai nu rezonanses shēmās, vai kvazirezonanses shēmās. Pirmajā gadījumā visa shēma strādā rezonanses režīmā, kas rada virkni problēmu, otrajā gadījumā shēmā tiek ieviestas lokālas rezonanses ķēdes, un rezonanse noteiktos momentos tiek organizēta tajās, un tā ir ar krietni augstāku frekvenci, kā pamata pārveidotāja frekvence. Ir virkne rakstu par šo tēmu, ir lērums dažādu interesantu specializētu mikroshēmu, it īpaši Linear Technology (kuru tagad laikam aprijis Analog Devices) izpildījumā. Pētot to visu, ir radušās idejas, kuru realizāciju neesmu atradis, un, kuras gribas pārbaudīt. Un tātad - ir vajadzība realizēt visu šo 12 tranzistoru neatkarīgu atvēršanu/aizvēršanu, manis brīvi izraudzītos laika momentos, intervāli starp kuriem varētu būt mērāmi sākot no dažiem desmitiem nanosekunžu. Neatteiktos, protams, no augstākas precizitātes. Tātad - vai ar STM32 var noorganizēt, ka šos 12 tranzistorus varēšu neatkarīgi vadīt? Ja ņemu analoģiju ar AVR, man būtu vajadzīgi 12 neatkarīgi OUTPUT COMPARE moduļi pietiekami ātram taimerim/taimeriem.

Labots - M_J
Link to comment
Share on other sites

AndrisBB

Jau esu aizmirsis kas tur ir ar tiem taimeriem, bet apskatot pirmo Nucleo boardu kas man uz galda, redzu ka tur ir 14 timeri, sākot no vienkāršākiem līdz sarežģītākiem, 6 no viņiem ir katram pa 4 output compare kanāliem. Ganjau viņi kautkā šrē interruptus, bet iespējams arī nē. MCU iet ar max frekvenci 180MHz. Droši vien vajadzētu tikt galā ar tavām prasībām :D

 

Link to comment
Share on other sites

Inspektors Caps

Jā, parastajiem taimeriem ir līdz 4 output compare kanāliem. Kaut kādas taimeru sinhronizācijas iespējas ir, bet tad tur jāpēta smalkāk. Bet vispār priekš aprakstītā barošanas bloka tieši laikā ir HRTIM (high resolution timer) jaunajā STM32G4 sērijā. Te būs prezentācija, application note un reference manual (no 844. lpp). Lūk pret šo "nieka" taimeri jau pat Ethernet izskatās vienkāršs... :D Bet no otras puses, arī iespējas tam ir tādas, ka mati ceļas stāvus, un liekas, ka tas ir tieši tas, ko Tev vajag. Un jā, pie 170 MHz clocka tam izsķirtspēja ir 184 ps, kas tiek panākts ar 32 aiztures līnijām. To pašu principu izmanto arī osciloskopi, lai sasniegtu gigasampļus sekundē ar visu to, ka neviens ADC nestrādā ne tuvu tik ātri.

 

Bet sākt apguvi mierīgi vari ar jau esošo plati. Ar neiekāpšanu sūdā viss ir vienkārši - paņem dokumentāciju, reģistru definīciju *.h failus un sāc ar to linku, ko devu. Nu, labi, vienā es Andrim piekrītu - HAL ir noderīgs sākumā paspēlēties. Ne tādēļ, ka tas nebūtu sūds, bet tādēļ, ka to var pamēģināt "pa fikso", lai gan arī tas ir strīdīgi... Tālāk gan tas tikai velk dziļāk purvā un neko stabilu ar to tāpat neuztaisīsi, tādēļ labāk ātrāk iet savu ceļu. Kurš konkrēti Discovery plates modelis Tev ir? Varu Tev salikt gatavu minimālu blinky projektu, ko var uzreiz palaist - ideāls starta punkts. :) Vēl aizdomājos... Uz AVR vispār pilnvērtīgas debug iespējas ir vai viss notiek tikai ar GPIO piniem un UART?

Labots - Inspektors Caps
Link to comment
Share on other sites

Paldies par, manuprāt, vērtīgu informāciju, ka parādīji, uz ko skatīties. Tiem STM ir ļoti plašs produktu klāsts, ka, meklējot vajadzīgo vajag izskatīt un iediļināties lērumā datašītu,  PICiem un Atmeļiem, vismaz sākuma stadijā informācijas apjoms bija stipri mazāks. Sākotnējā apskate liek domāt, ka tur ir tas, kas man vajadzīgs. Jāizskata cauri pieejamie čipi, lai atrastu to, kas ir vistuvāk vajadzībām.

Esošā plate man ir šī:
https://lv.farnell.com/stmicroelectronics/stm32f411e-disco/dev-board-stm32-discovery/dp/2456732

Par debugošanu - mazākajiem AVRiem, ar kuriem sāku, nebija nekā,  tādiem, kā ATMEGA128 ir JTAG. Bet uz to brīdi, kad sāku lietot tādus, vairs neizjutu pēc tā vajadzību. Kad rakstu kaut ko priekš AVR, izmantoju paštaisītu tūli, esot caur seriālo portu nepārtraukti pieslēdzies čipam. Pašreiz daru to, izmantojot MODBUS RTU protokolu, un vizualizēju uz datora ekrāna kontrolierī notiekošo, piemēram izvēlētu reģistru vērtības, vai kā skaitli, vai kā atsevišķus bitus, vai kā BARus. Vizualizācijas ideja aizgūta no Weintek softa Easy Builder un realizēta tā, kā uzskatīju par labu esam. Komplektā ar bootloaderi, patreiz jūtos tīri labi apgādājies ar debugošanas iespējām.
 

 

 

Link to comment
Share on other sites

Raimonds1
2020.08.2. , 21:09, Inspektors Caps teica:

Savām vajadzībām jau esmu uzrakstījis draiveru bibliotēku, kooperatīvo OS ar software taimeriem, draiveru OS adaptācijas slāņus FreeRTOS un tam kooperatīvajam, propertiju menedžēšanas sistēmu, web serveri ar dinamisku divpusēju AJAX datu apmaiņu uz lwIP, robustu bootloader un vēl visu ko. Ir doma to kooperatīvo OS uzdāvināt pasaulei ar MIT vai BSD licenzi. Tās ir tikai 300 rindas (bez komentāriem) standarta C koda, bet "bare metal" izstrādi ar saviem taskiem un taimeriem tās sagriež kājām gaisā. Arduino pasaulē tas var novest pat līdz nelielai revolūcijai, kas likvidē setup()/loop() amatierismu. Tikai neesmu pārliecināts vai to vajag darīt... No vienas puses es neko nezaudēju, bet no otras, ja jau visi taisa un lieto sūdus, kādēļ man par velti atdot kaut ko labu? Kā darītu jūs - citi šeit esošie izstrādātāji un citādi tehniskie? :)

 

To  vajadzētu kaut kā salikt kopā ar pašreizējām pasaules aktualitātēm. 

1. Piesārņojums.

2. CO2 un enerģijas taupīšana.

3. Algu nevienlīdzība vīriešiem un sievietēm.

Tāds bezmaksas vai lēts, pieejams, labs, saprotams projekts vienā setā saliktu visādus PR un slēpto labumu gūšanas pasākumus un varētu kļūt par Latvijas NOKIA stāstu.(Jā, jā, zinu NOKIA vēsturi)

 

Lai tas nebūtu tikai tādā vispārīgas filozofēšanas līmenī.

1. Enerģijas paralēlais daļējas aizstāšanas projekts privātmājām. Pie esoša un funkcionējoša elektrotīkla daļu enerģijas atsevišķu sinusoīdu aizstāšanas līmenī izmantojot kaut kādu mazjaudas eko enerģiju. Saule, vējš, mājas trenažieris, peltjē elements uz apkures utt. 10-20-30% no patēriņa, ja ko tādu izmanto 10-20-30%, tad kopējais lielo pārvades tīklu atslogojums ir no 1-10% Noformēt kā super lētu un pieejamu eko projektu

2. Koģenerācijas-siltumsūkņa kombinētā apkures un enerģijas sistēma, kas dinamiski pielāgojas siltuma un elektronerģijas pieprasījumam, salāgo to ar lielajiem apgādes tīkliem un var siltuma režīmā dabūt divreiz vairāk siltuma enerģijas siltumsūknim COP - 4, koģenerācija elektrība 35 un siltums 50%, 35 x 4 + 50

3. Atklāts programmatūras forums ar oriģinālām idejām uz to jau izstrādāto labāko risinājumu bāzes. Iespēja izpausties atklāti ģenerējot idejas.

Link to comment
Share on other sites

AndrisBB

Cilvēks tik pajautāja vai vērts tērēt laiku un mācīties kautkādu konkrētu ASM, bet Raimonds te par savām kosmosa enerģijām vārās.

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

Raimonds1
2020.08.2. , 11:11, M_J teica:

Salīdzinot ar to, kā ir attīstījusies auto elektronika un motoru vadības sistēmas automobiļos, es biju šokā, ieraugot, kādā līmenī ir vadības sistēmas elektrostaciju gāzes motoriem. Tur valda senvēsture! 21. gadsimta motoriem aizdedze ir no kāda 75. gada, bet puse no vadības automātikas loģikas ir būvēta uz relajiem, atkārtojot vēsturē pirmos mēģinājumus radīt skaitāmās mašīnas. Tam visam kaut kā tiek piekabināts tačskrīns un internets. Nesaprotu, kāpēc lampu etaps ir izlaists. Es nezinu, ko Woodward, Heinzmann un citi šīs jomas "līderi" ir samaksājuši vai kādā citā veidā sarunājuši, piemēram ar Bosch, ka tas nenāk viņu lauciņā un ar vienu vēzienu neaizslauka viņus vēstures mēslainē?

Nebūt ne. 

Te dažs labs konkrēti strādā ar lieljaudas ģeneratoriem, auto motoriem un tā visa programmatūru un elektroniku.

Te būtu tieši vietā tām zināšanām un jau izstrādātajiem risinājumiem, ko gribēja izplatīt par velti, pielikt vēl papildu pievienotu vērtību.

 

Pie tam tādu, kas vismaz formāli ir pasludināta par risināmu problēmu un uz kuras aktualitāti jau profitē visādi aktīvisti un aktīvistes.

Kas gan varētu būt vēl atbilstošāks.

 


Pirms 52 minūtēm , AndrisBB teica:

Cilvēks tik pajautāja vai vērts tērēt laiku un mācīties kautkādu konkrētu ASM, bet Raimonds te par savām kosmosa enerģijām vārās.

 

Link to comment
Share on other sites

2020.08.4. , 00:56, Inspektors Caps teica:

Bet vispār priekš aprakstītā barošanas bloka tieši laikā ir HRTIM (high resolution timer) jaunajā STM32G4 sērijā. Te būs prezentācija, application note un reference manual (no 844. lpp).

Esmu visā nopietnībā apņēmies šito pamēģināt. Šodien saņēmu no Farnell STM32G4 kontrolierus, kur ir iekšā HRTIM. Paralēli citiem darbiem pamazām lasu materiālus un zīmēju PCB. Starp citu, citētajā tekstā, manuprāt ir ietverta atbilde Andrim, kāpēc elektroniķu vidū joprojām ir populāri vienkāršie PICi un AVRi. Iedomājieties, mani interesējošās lietas sākas no 844. lappuses! Bet tas nenozīmē, ka varu sākt lasīt manuāli no šīs vietas. Tās iepriekšējās lappuses, un arī pēc tam sekojošās vienalga būs kaut vai pa diagonāli jāizskata cauri. Kurš to darīs, ja vajag, lai kontrolieris pamidžina LEDus, vai dara citas vienkāršas lietas? Skaidrs, ka ņems veco, vienkāršo PICu vai AVRu. Otra lieta - jāzīmē un jāpasūta PCB. Nu nav šitie kontrolieri DIP korpusos, ar nedaudz (piemēram 28) izvadiem kurus varēja uzlodēt uz "vafeles" un pa fikso pamēģināt interesējošās lietas. Protams, šajā gadījumā pareizā loģiskā rīcība būtu paņemt kādu "Development Board", bet zinu, cik man grūti sevi motivēt uz kaut kādu "Hello World" vai bezjēdzīgu diožu midžināšanas programmiņu mēģināšanu uz tādas izstrādes plates. Labāk uzreiz taisu PCB ar visiem draiveriem un Mosfetiem, vai ērti piespraužamu pie spēka daļas, tā, kā es to uzskatu par pareizu esam, nevis mēģinu to Dev Boardu ar kaut kādiem puņķiem savienot ar spēka daļu, vai taisīt spēka daļas plati piemērojoties Dev. Boardam. Protams, pirmā PCB būs galīgi garām, bet kamēr neuztaisīšu, neuzzināšu, kas ir galīgi garām. Un fiziskos kontrolierus pasūtīju, lai nesanāktu tā, ka uztaisu PCB, kur attālums starp kontroliera izvadiem ir viens, bet dabā reālajiem kontrolieriem cits. Protams, datašītā viss ir smalki uzrakstīts, un it kā variantu nav, bet tomēr atvilknēs ir vairāki čipi, kas ir ne tajos korpusos, kuros gribēju tos saņemt, un pats nesaprotu, kā pamanījos nopirkt nepareizos.

Link to comment
Share on other sites

AndrisBB

Nesaprotu ko tieši ar šo visu tu gribēji pateikt? To ka labāk uzreiz taisīt PCB?

Nezinu, es paņemtu iesākumam to pašu Nucleo boardu, lai vismaz varētu izstrādes vidi dabūt darbojošos. Nemaksā jau viņas neko, ar to G sērijas kontrolieri ap 15 eiriki. Dzīvot var. Plus dabūsi debuggeri "pa velti" ko izmantot jau uz saviem boardiem. Ko tu taisies debuggeri pirkt atsevišķi?

Link to comment
Share on other sites

pirms 1 stundas , AndrisBB teica:

Nesaprotu ko tieši ar šo visu tu gribēji pateikt?

Neko, vienkārši nesaturēšana.

Link to comment
Share on other sites

Raimonds1

Montētāja, gatavu bloku kopā salicēja, bibliotēkas kodu copy-paste pieeja un projektētāja, inženiera, optimālā, maksimāli ātrā, vienkāršā, lētā risinājuma izstrādātāja pieeja.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...