Kompüterlər və müasir qurğular



Layihəmdə STM32F103C8 mikrokontroller və stm32duino çərçivəsindən istifadə edirəm. Bu Arduino klonu ST-Link və ya USB-UART adapteri kimi xarici komponentlərdən istifadə etmədən USB vasitəsilə proqram təminatını yükləməyə imkan verən xüsusi yükləyici təklif edir.

Bu gün mənə CooCox altından və stm32duino olmadan çılpaq nəzarətçi ilə işləməli oldum. Amma problem buradadır. Bu yükləyicidən tökülən bir lampa ilə sadə bir flaşör belə işləmir.

Gəlin bunu anlayaq. Bəlkə də mənim hesablamalarım kiməsə bayağı görünəcək. Ancaq mən STM32 kontrollerlərini öyrənməyə yenicə başlayıram və problem tapmaq üçün ən azı yarım gün öldürdüm. Birdən bu məqalə kiminsə inkişaf vaxtını azaldacaq.

ST-Link və digər debuggerlərə qarşı heç bir şeyim yoxdur. Amma mənim hazır cihazımda bu olmayacaq, amma mütləq USB olacaq. Niyə USB vasitəsilə proqram təminatını yeniləmək imkanını dərhal qoymayasınız? Şəxsən mən bu üsulu rahat hesab edirəm. Xüsusilə məndə hələ də enerji və USB seriyasının təmin olunduğu bir kabel var.

Yükləyicinin necə işlədiyini görək. Başlamaq üçün, AVR nəzarətçiləri nümunəsində. Niyə onu xatırladım? Arduino-dan köçürdüm və bilinçaltı olaraq eyni davranışı gözləyirdim. Ancaq STM32-də hər şey fərqli oldu. Buna görə də bu iki mikrokontroller arasındakı fərq haqqında danışmaq istəyirəm.

Belə ki. AVR ATMega mikro nəzarət cihazlarında, flaşın sonuna yaxın yükləyici üçün müəyyən miqdarda yaddaş saxlanıla bilər. Qoruyucu bitlərdən istifadə edərək, proqramın hansı ünvandan başlayacağını idarə edə bilərsiniz. Bootloader yoxdursa, proqram 0x0000 ünvanından başlayır. Yükləyici varsa, o, başqa bir ünvandan başlayır (məsələn, 0x3C00 ilə ATMega32-də, yükləyicinin ölçüsü 2k-a təyin edilibsə).


Yükləyici öz işini gördükdən sonra 0x0000 ünvanından idarəetməni əsas proqrama ötürür. Bunlar. proqram həmişə 0x0000 ünvanından başlayır. Kompilyator və əlaqələndirici kodun ünvan sahəsinin əvvəlində yerləşəcəyi ehtimalı ilə işləyir.

STM32 mikro nəzarətçilərində hər şey fərqlidir. Bütün proqramlar 0x0800000 ünvanından başlayır. Bootloader xüsusi bir şey deyil. Bu, eyni başlanğıc ünvanından başlayan eyni proqramdır. Əməliyyat zamanı yükləyici proqram təminatını qəbul edə bilər (USB və ya UART vasitəsilə, USB flash sürücüsündən oxumaq, peykdən qəbul etmək, onu alt kosmosdan almaq, nə olursa olsun ...) və onu yükləyicinin özündən daha yüksək ünvanlara yaza bilər. Və təbii ki, işinizin sonunda nəzarəti əsas proqrama köçürün.


Beləliklə, proshivka tərtib edərkən, yükləyicinin proshivkanı harada yazacağını bilməli və ünvanları buna uyğun tənzimləməlisiniz.

Bütün bunlar nəzəriyyə ilə bağlıdır. Gəlin məşqə keçək. Aşağıda USB yükləyicisini STM32F1xx seriyalı mikrokontrollerlərə və bəlkə də başqalarına necə bağlamaq barədə addım-addım təlimat verilmişdir.

Bununla belə, dövrə ilə bağlı bəzi məhdudiyyətlər var. Burada təəssüf ki, güclü deyiləm. YTP PA12 portu (aka USB D+) üçün 1,5k açılan rezistora ehtiyac duyur. Bu, yükləyiciyə lazımi vaxtda USB-yə qoşulub onu ayırmağa imkan verir.

  • İndi mikro nəzarətçi USB yükləyicisi vasitəsilə işıqlandırılmağa hazırdır. Ancaq hələ də firmware proqramını düzəltməlisiniz. Və 2 şeyi etməlisiniz:
    • Bağlayıcının başlanğıc ünvanını göstərin. CooCox-da bu, layihə parametrlərində, Link sekmesinde, Yaddaş Sahələri bölməsində, IROM1 Başlanğıc Ünvanında edilir. Yükləyici ilk 8 kilobaytı tutur, ona görə də mikroproqramın başlanğıc ünvanı 0x0800000 + 0x2000 = 0x08002000 olacaq. Ölçü sahəsi də yəqin ki, 8k azaldılmalıdır.
    • Proqramın əvvəlində bir yerdə, periferiyaları işə salmazdan əvvəl zəng edin

      NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);

  • Firmware yükləyicisi stm32duino layihəsindən götürülə bilər. Alətlər kataloqunda maple_upload adlı skripti axtarın. Mən yalnız Windows versiyasından istifadə etdim - maple_upload.bat.
  • Bu şəkildə işləyin:

    "maple_upload.bat" COM20 2 1EAF:0003 "Path\To\Firmware.bin"
    COM20 əvəzinə mikrokontrolörün qoşulduğu portu əvəz etməlisiniz.

    Doldurucu çox incə bir şeydir, nisbi yolları sevmir. ona görə də proshivkaya gedən yol tam şəkildə göstərilməlidir.

    1EAF: 0003 VID və PID-dir

    2, AltID parametridir, bu, proqram təminatının 0x08002000 (oxu) ilə yüklənməsinin lazım olduğunu göstərir.

  • Daha bir neçə nüans. Firmware yükləməzdən əvvəl yükləyicini işə salmalısınız. Ən asan yol sıfırlama düyməsini sıxmaqdır. Bundan sonra, bootloader başlayacaq və firmware üçün bir neçə saniyə gözləyin. Bu nöqtədə heç kim maple_upload işləmirsə, yükləyici nəzarəti əsas proqram təminatına keçirəcək.

    Bu, narahatlığa səbəb ola bilər. Mikrokontroller bağlanır və asılırsa, o, artıq portu dinləmir. Buna görə də, o, açar ardıcıllığını eşidə bilmir və yükləyiciyə yenidən başlaya bilmir. Sonra yalnız kömək etmək üçün sıfırlayın.

    Hamısı budur. Ümid edirəm ki, məqaləm yükləyicinin STM32-də necə işlədiyinə və USB portu vasitəsilə proqram təminatının necə yüklənə biləcəyinə işıq salacaq. Təəssüf ki, giriş həddi hələ də yüksəkdir, amma birdən mənim məqaləm kiməsə onu dəf etməyə kömək edəcək.

    Tez-tez verilən suallara cavablar:

  • 1. Bu tez-tez verilən suallar kimlər üçündür?

    Mikrokontrollerlər əsasında cihazları inkişaf etdirən əksər mütəxəssislər mikrokontroller proqramlarının qorunması mövzusu ilə artıq tanışdırlar, buna görə də bu bölmənin onlara yeni bir şey söyləməyəcəyini düşünə bilərik. Bununla belə, bu cür mühafizənin təfərrüatlı təşkili ilə tanış olmayan, lakin mövcud cihazın işinin təfərrüatlarını başa düşmək və ya belə bir cihaz yaratmaq istəyən böyük bir mühəndis ordusu və elektron cihazların adi istehlakçıları var, bu kolleksiya suallara cavablar onlar üçün nəzərdə tutulub.

  • 2. Mikrokontrollerlərin mühafizəsi nə üçün və kimdən həyata keçirilir?

    Bir çox elektron cihaz istehsalçıları öz cihazlarını başqa bir istehsalçı tərəfindən asanlıqla kopyalanmaqdan qorumağa çalışırlar. Mikrokontroller istehsalçıları mikrokontrolörün yaddaşında olan proqramın (mikroproqramın) surətinin qorunmasını məhsullarının funksionallığına daxil etməklə onları yarı yolda qarşıladılar. Bu proqram təminatının oxunma mühafizəsindən istifadə edərək, elektron cihazların istehsalçıları məhsullarını başqa istehsalçı tərəfindən sadəcə olaraq kopyalanmaqdan qoruya bilərlər.

  • 3. Mikrokontrollerdə surətdən qorunma nədir və mən niyə qorunan mikroproqramı (mikroproqramı) özüm oxuya bilmirəm?

    Adətən, mikrokontroller proqramlaşdırması zamanı surətin mühafizəsi xüsusi təyin edilməklə təyin edilir qoruyucu bit və ya mikrokontroller konfiqurasiya sözündə bir neçə bit. Fiziki olaraq bu bitlər mikrokontroller çipində xüsusi yaddaş hüceyrələrində yerləşir. Bəzən parolun qorunması kimi digər təhlükəsizlik üsullarından istifadə olunur, lakin prinsip eynidir. Qorunmanı aradan qaldırmaq üçün adətən bu bitin və ya bir neçə bitin dəyərini dəyişdirmək lazımdır, baxmayaraq ki, mikrokontroller proqramının yaddaşının məzmununu oxumağın digər üsulları tez-tez istifadə edilə bilər. Bir proqramçı kimi adi üsullar bunu edə bilməyəcək, elektron cihazların adi bir tərtibatçısında olmayan mürəkkəb bahalı avadanlıq tələb olunur. Buna görə də, lazımi avadanlıq, bilik və təcrübəyə malik olmaqla, biz bu növ xidmətin göstərilməsində ixtisaslaşmışıq.

  • 4. Mikroproqramı (proshivka) oxumaqdan qorunmanın aradan qaldırılması mənim üçün nə edir?

    Tutaq ki, sizin elektron cihaz istehsalçılarından birindən aldığınız bir cihazınız var və siz eyni, lakin dəyişdirilmiş cihazı istehsal etmək istəyirsiniz. Ancaq təbii ki, sizdə mikroproqramın mənbə kodları və ya hazır proqram təminatı yoxdur və siz sıfırdan proqram təminatını tamamilə inkişaf etdirməli və sazlamalı olacaqsınız. Bu, cihazın (sxem) elektron komponentinin surətinin çıxarılması ilə müqayisədə çoxlu pul və vaxt sərf etməli olacaq. Peşəkar xidmətlərimizdən istifadə edərək cihazın hazırlanması üçün həm pula, həm də vaxtınıza qənaət etmiş olacaqsınız. Qurğunun və ya onun elektrik dövrəsinin olması halında biz onun işinin alqoritmini və mikroproqramın mətnini C və ya Assembler proqramlaşdırma dilində tam bərpa edə bilərik.

  • 5. Bu cür hərəkətlərin qanunvericilik baxımından qanuniliyi nədən ibarətdir?

    Biz müştərinin tələbi ilə onun cihazını təmir etmək və ya mikroproqramın alqoritmi ilə tanış olmaq üçün bütün mikroproqramları (mikroproqramları) oxuyuruq. Mikroproqramın qeyri-qanuni yayılmasına və ya onunla və ya onun köməyi ilə edilən digər hərəkətlərə görə bütün sonrakı məsuliyyət tamamilə müştərinin üzərinə düşür.

    Şirkətimiz Rusiya Federasiyasının ərazisində fəaliyyət göstərir, ona görə də aşağıda qanundan bir sitat verilmişdir. Digər ölkələrin qanunvericiliyi də oxşar mövqe bildirir.

    Rusiya Federasiyasının Mülki Məcəlləsinin 1280-ci maddəsi. "Kompüter proqramlarının və verilənlər bazalarının sərbəst surətdə çıxarılması. Kompüter proqramlarının dekompilyasiyası".

    2. Kompüter proqramının nüsxəsinə qanuni olaraq sahiblik edən şəxsin ideya və prinsiplərini müəyyən etmək üçün hüquq sahibinin razılığı olmadan və əlavə haqq ödəmədən belə proqramın fəaliyyətini öyrənmək, araşdırmaq və ya sınaqdan keçirmək hüququ vardır. kompüter proqramının hər hansı elementi əsasında bu maddənin 1-ci bəndinin 1-ci yarımbəndində nəzərdə tutulmuş hərəkətləri yerinə yetirməklə.

    3. Kompüter proqramının nüsxəsinə qanuni olaraq malik olan şəxs hüquq sahibinin razılığı olmadan və əlavə haqq ödəmədən obyekt kodunu çoxaltmaq və mənbə mətnə ​​çevirmək (kompüter proqramının nüsxəsini çıxarmaq) və ya başqasına göstəriş vermək hüququna malikdir. Bu şəxs tərəfindən müstəqil olaraq hazırlanmış kompüter proqramının dekompilyasiya olunan proqramla qarşılıqlı əlaqədə ola bilən digər proqramlarla qarşılıqlı fəaliyyətinə nail olmaq üçün lazım olduqda bu hərəkətləri yerinə yetirmək ...

  • 6. Əlavə oxunuşdan qorunma nədir və niyə normaldan daha yaxşıdır?

    Əlavə üç səviyyəli qorunma məlum üsullardan istifadə edərək mikroproqramın (firmware) oxunmasının mümkünsüzlüyü üçün şərait yaratmaq üçün nəzərdə tutulmuşdur. Buraya birdən üç səviyyəyə qədər qorunma daxil ola bilər: qutunun açılmasından qorunma, proqramçının oxumaq üçün istifadə etdiyi ayağın gizli sınması, oxumaq üçün istifadə edilən ayaq idarəetmə məntiqinin gizli çipdən çıxarılması.

    Birinci səviyyə, kristala daxil olmağa imkan verməyən turşulara və həlledicilərə davamlı odadavamlı polimerdir.

    İkinci səviyyə proqramçının xüsusi bahalı alətlər olmadan oxumasını qeyri-mümkün edir.

    Üçüncü səviyyə ikinciyə bənzər bir funksiyanı yerinə yetirir, lakin eyni zamanda daxili təbəqələrdə idarəetmə məntiqinin çip üzərində bərpası praktiki olaraq mümkün deyil və ya çox bahalı avadanlıq tələb edir.

    Nəzərə alsaq ki, əksər hallarda adi zavod mühafizəsi asanlıqla keçilir, bir çox bahalı və mürəkkəb qurğular üçün əlavə mühafizə intellektual fəaliyyətin bəhrələrinin üçüncü şəxslərin əlinə keçməsi ilə bağlı maddi itkilərin qarşısını almaq üçün son dərəcə zəruri tədbirdir.

  • 7. Mən əlavə qoruma quraşdırmaq istəyirəm, amma qorxuram ki, mühafizəni quraşdırmadan əvvəl mənim çox məxfi proqramımı nəzərdən keçirəsiniz. Nəhayət onu proqramlaşdırmadan əvvəl çipin üzərinə əlavə qorunma qoymağın bir yolu varmı?

    Bu halda, bizim əlavə qorumamızı quraşdırmadan əvvəl, əsas proqram olmadan yalnız yükləyicini yandıra bilərsiniz. Əlavə qoruma quraşdırdıqdan sonra siz artıq əsas yaddaşı proqramlaşdıra bilərsiniz. Üstəlik, əsas proqramı yükləmək üçün yükləyici standart proqramlaşdırma üçün istifadə olunan əsas interfeysdən başqa hər hansı digər interfeysdən istifadə etməlidir, çünki əlavə qorumamızı quraşdırdıqdan sonra əsas interfeys deaktiv ediləcək. Adətən yükləyicinin özü kopyalamaq üçün maraqlı deyil. Bootloader olaraq siz özünüzdən istifadə edə və ya mikrokontroller istehsalçısının nümunələrindən dəyişdirə bilərsiniz.

  • Bu Arduino klonu ST-Link və ya USB-UART adapteri kimi xarici komponentlərdən istifadə etmədən USB vasitəsilə proqram təminatını yükləməyə imkan verən xüsusi yükləyici təklif edir.

    Bu gün mənə CooCox altından və stm32duino olmadan çılpaq nəzarətçi ilə işləməli oldum. Amma problem buradadır. Bu yükləyicidən tökülən bir lampa ilə sadə bir flaşör belə işləmir.

    Gəlin bunu anlayaq. Bəlkə də mənim hesablamalarım kiməsə bayağı görünəcək. Ancaq mən STM32 kontrollerlərini öyrənməyə yenicə başlayıram və problem tapmaq üçün ən azı yarım gün öldürdüm. Birdən bu məqalə kiminsə inkişaf vaxtını azaldacaq.

    ST-Link və digər debuggerlərə qarşı heç bir şeyim yoxdur. Amma mənim hazır cihazımda bu olmayacaq, amma mütləq USB olacaq. Niyə USB vasitəsilə proqram təminatını yeniləmək imkanını dərhal qoymayasınız? Şəxsən mən bu üsulu rahat hesab edirəm. Xüsusilə məndə hələ də enerji və USB seriyasının təmin olunduğu bir kabel var.

    Yükləyicinin necə işlədiyini görək. Başlamaq üçün, AVR nəzarətçiləri nümunəsində. Niyə onu xatırladım? Arduino-dan köçürdüm və bilinçaltı olaraq eyni davranışı gözləyirdim. Ancaq STM32-də hər şey fərqli oldu. Buna görə də bu iki mikrokontroller arasındakı fərq haqqında danışmaq istəyirəm.

    Belə ki. AVR ATMega mikro nəzarət cihazlarında, flaşın sonuna yaxın yükləyici üçün müəyyən miqdarda yaddaş saxlanıla bilər. Qoruyucu bitlərdən istifadə edərək, proqramın hansı ünvandan başlayacağını idarə edə bilərsiniz. Bootloader yoxdursa, proqram 0x0000 ünvanından başlayır. Yükləyici varsa, o, başqa bir ünvandan başlayır (məsələn, 0x3C00 ilə ATMega32-də, yükləyicinin ölçüsü 2k-a təyin edilibsə).

    Yükləyici öz işini gördükdən sonra 0x0000 ünvanından idarəetməni əsas proqrama ötürür. Bunlar. proqram həmişə 0x0000 ünvanından başlayır. Kompilyator və əlaqələndirici kodun ünvan sahəsinin əvvəlində yerləşəcəyi ehtimalı ilə işləyir.

    STM32 mikro nəzarətçilərində hər şey fərqlidir. Bütün proqramlar 0x0800000 ünvanından başlayır. Bootloader xüsusi bir şey deyil. Bu, eyni başlanğıc ünvanından başlayan eyni proqramdır. Əməliyyat zamanı yükləyici proqram təminatını qəbul edə bilər (USB və ya UART vasitəsilə, USB flash sürücüsündən oxumaq, peykdən qəbul etmək, onu alt kosmosdan almaq, nə olursa olsun ...) və onu yükləyicinin özündən daha yüksək ünvanlara yaza bilər. Və təbii ki, işinizin sonunda nəzarəti əsas proqrama köçürün.


    Beləliklə, proshivka tərtib edərkən, yükləyicinin proshivkanı harada yazacağını bilməli və ünvanları buna uyğun tənzimləməlisiniz.

    Bütün bunlar nəzəriyyə ilə bağlıdır. Gəlin məşqə keçək. Aşağıda USB yükləyicisini STM32F1xx seriyalı mikrokontrollerlərə və bəlkə də başqalarına necə bağlamaq barədə addım-addım təlimat verilmişdir.

    Bununla belə, dövrə ilə bağlı bəzi məhdudiyyətlər var. Burada təəssüf ki, güclü deyiləm. YTP PA12 portu (aka USB D+) üçün 1,5k açılan rezistora ehtiyac duyur. Bu, yükləyiciyə lazımi vaxtda USB-yə qoşulub onu ayırmağa imkan verir.

  • İndi mikro nəzarətçi USB yükləyicisi vasitəsilə işıqlandırılmağa hazırdır. Ancaq hələ də firmware proqramını düzəltməlisiniz. Və 2 şeyi etməlisiniz:
    • Bağlayıcının başlanğıc ünvanını göstərin. CooCox-da bu, layihə parametrlərində, Link sekmesinde, Yaddaş Sahələri bölməsində, IROM1 Başlanğıc Ünvanında edilir. Yükləyici ilk 8 kilobaytı tutur, ona görə də mikroproqramın başlanğıc ünvanı 0x0800000 + 0x2000 = 0x08002000 olacaq. Ölçü sahəsi də yəqin ki, 8k azaldılmalıdır.
    • Proqramın əvvəlində bir yerdə, periferiyaları işə salmazdan əvvəl zəng edin

      NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);

      YENİLƏNİB 05/17/2018: STM32Cube-un müasir versiyasında NVIC_SetVectorTable() funksiyası yoxdur. Bunun əvəzinə, system_stm32f1xx.c faylında VECT_TAB_OFFSET təyinini düzəldə bilərsiniz (və ya başqa mikro nəzarətçi üçün oxşar)

  • Firmware yükləyicisi stm32duino layihəsindən götürülə bilər. Alətlər kataloqunda maple_upload adlı skripti axtarın. Mən yalnız Windows versiyasından istifadə etdim - maple_upload.bat.
  • Bu şəkildə işləyin:

    "maple_upload.bat" COM20 2 1EAF:0003 "Path\To\Firmware.bin"
    COM20 əvəzinə mikrokontrolörün qoşulduğu portu əvəz etməlisiniz.

    Doldurucu çox incə bir şeydir, nisbi yolları sevmir. ona görə də proshivkaya gedən yol tam şəkildə göstərilməlidir.

    1EAF: 0003 VID və PID-dir

    2, AltID parametridir, bu, proqram təminatının 0x08002000 (oxu) ilə yüklənməsinin lazım olduğunu göstərir.

  • Daha bir neçə nüans. Firmware yükləməzdən əvvəl yükləyicini işə salmalısınız. Ən asan yol sıfırlama düyməsini sıxmaqdır. Bundan sonra, bootloader başlayacaq və firmware üçün bir neçə saniyə gözləyin. Bu nöqtədə heç kim maple_upload işləmirsə, yükləyici nəzarəti əsas proqram təminatına keçirəcək.

    Bu, narahatlığa səbəb ola bilər. Mikrokontroller bağlanır və asılırsa, o, artıq portu dinləmir. Buna görə də, o, açar ardıcıllığını eşidə bilmir və yükləyiciyə yenidən başlaya bilmir. Sonra yalnız kömək etmək üçün sıfırlayın.

    Hamısı budur. Ümid edirəm ki, məqaləm yükləyicinin STM32-də necə işlədiyinə və USB portu vasitəsilə proqram təminatının necə yüklənə biləcəyinə işıq salacaq. Təəssüf ki, giriş həddi hələ də yüksəkdir, amma birdən mənim məqaləm kiməsə onu dəf etməyə kömək edəcək.

    Bu gün biz stm32-də proqram təminatını sərin hakerlər tərəfindən oxunmaqdan qoruyacağıq. Rezin çəkməmək üçün burada bir kod parçası var:

    #ifdef NDEBUG if (FLASH_GetReadOutProtectionStatus() == RESET) ( FLASH_Unlock(); FLASH_ReadOutProtection(ENABLE); FLASH_Lock(); ) #endif

    Təxmin etdiyiniz kimi, parça stm kitabxanasından istifadə edir. Belə bir kod parçasından istifadə etmək çox rahatdır - nəzarətçi ilk başlanğıcda öz mühafizəsini təyin edir və ilk başlanğıcı proqram təminatından sonra təşkil etmək asandır. Budur, qoruyucuların zülmündən azadlıq!

    Bəli, "kitabxana və registrlərə birbaşa giriş" haqqında holivor haqqında bilirəm. Burada mənim mövqeyim belədir - əgər sizə yüksək sürət lazımdırsa və ya yaddaş çox az qalıbsa, ancaq registrlərə birbaşa çıxış lazımdır. Sürət vacib deyilsə və çoxlu yaddaş varsa, kitabxanadan istifadə etmək daha yaxşıdır - bu şəkildə proqram daha sürətli və daha oxunaqlı yazılır.

    Müdafiəni çıxarın
    Biz nəzarətçini qorumuşuq. Ancaq burada problem var - proqramımızı düzəltmək lazımdır və quraşdırılmış qoruma ilə nəzarətçi ilə heç bir şey edilə bilməz - nə oxumaq, nə də yazmaq. Müdafiəni necə aradan qaldırmaq olar? Dərhal xəbərdar edirəm - ST-dən olan uşaqlar hər şeyi düzgün etdilər və qorunma ilə birlikdə bütün proqram təminatı məhv edildi.

    Qorunmanı aradan qaldırmaq üçün bizə st-link yardım proqramı lazımdır. Siz onu yükləyə bilərsiniz.

    Proqramı işə salın və bu elementi seçin və ya sadəcə ctrl-b düyməsini basın:

    "Oxumaqdan qorunma vəziyyəti, off seçin" sahəsində. Və Tətbiq düyməsini basın:

    Qoruma biti ilə birlikdə bütün yaddaş da silinir:

    Özünüzü qoruyun, biz təhlükəsiz yerləşdirmə tərəfdarıyıq.

    Yandırmağın ən asan və ən sərfəli yolu STM32- istifadə etməklə yükləyici, bu yazıda lövhənin nümunəsindən istifadə edərək bunu necə edəcəyimizi nəzərdən keçirəcəyik miniSTM32F103V.

    Əvvəlcə nə olduğunu anlayaq yükləyici və ya nə adlanırsa yükləyici. Yükləyici- bu sadəcə yaddaşın müəyyən bölməsində saxlanılan və flaş mikrokontrolörün üzərinə yaza bilən proqramdır. Çipin istehsalı zamanı tikilir və heç bir şəkildə dəyişdirilə bilməz. Mikrokontrolörün yaddaşın bu bölməsinə daxil olması üçün siz çıxış etməlisiniz BOOT0 gücə qədər çəkin və çıxarın BOOT1 yerə. Lövhədə bu iki sancaq usb konnektorunun yaxınlığında yerləşir və çəkilmə jumpers istifadə edərək həyata keçirilir.
    Aşağıda mikrokontrolörün resetdən sonra hansı yaddaş sahəsindən işə salınacağını təyin edən cədvəl var BOOT0BOOT1.


    Tutaq ki, biz jumpers quraşdırmışıq, indi altıgen faylı proqram təminatı ilə yükləyiciyə köçürməliyik, onu köçürəcəyik. uart, bunun üçün bizə bir çevirici lazımdır usb uart.


    Mikrosxem əsasında hazırlanmış belə bir çeviricim var FT232RL bir lehimləmə stansiyası üçün nazik bir uc istifadə edərək, lehimləmə çox sadədir. Sızdırmazlıq üsulu aşağıdakı kimidir, əvvəlcə iki əks bucaqdan bir ayağı tutmalısınız, sonra mikrosxem sabitləndikdə, ayaqların qalan hissəsini bir lehimləmə dəmiri və ya saç qurutma maşını ilə lehimləyin. Və son toxunuş, mexaniki gərginliyi aradan qaldırmaq üçün əvvəlcə lehimlənmiş ayaqları bir daha lehimləyirik.

    Adapteri bağlayırıq usb uart kompüterə və hansı çipdə hazırlandığından asılı olaraq CP2120 və ya FT232, müvafiq sürücüləri quraşdırın. Bundan sonra sistemdə COM_PORT kimi müəyyən edilməlidir.


    İndi adapterimizi lövhəyə qoşaq, adapterin RX çıxışını çıxışa birləşdirək MCU_TxD, və çıxış ilə TX çıxışı MCU_RхD. Satıcının göndərdiyi lövhənin topologiyası yuxarıdakı şəkildən bir qədər fərqlidir, proqram təminatı üçün sancaqlar ayrıca göstərilir və qırmızı oxlarla işarələnir.


    Bundan sonra, yükləyici ilə əlaqə saxlayacağımız proqramı yükləməlisiniz, bu, FLASH LOADER DEMONSTRATOR adlanır.


    Proqramı quraşdırdıqdan sonra adapterimizin müəyyən edildiyi com portunu seçin usb uart və NEXT düyməsini sıxsanız, sürət avtomatik olaraq təyin olunacaq. Nəzarətçi oxumaqdan qorunursa, o zaman "Mühafizəni sil" düyməsini basmaqla qorunma aradan qaldırıla bilər, bu zaman fləş yaddaş silinəcək və müvafiq olaraq orada yazılmış bütün məlumatlar itir.


    Nəzarətçi qorunmursa, aşağıda göstərilən pəncərə görünəcək, orada NEXT düyməsini sıxırıq.


    Növbəti pəncərədə nə etmək istədiyimizi seçməlisiniz: mikrokontrolörün flaşını oxuyun / yazın, silin, oxumaq / yazmağı qadağan edin, biz yazmaqda maraqlıyıq, bunun üçün yükləmək istədiyimiz faylı seçirik və düyməsini basın. NÖVBƏTİ.

    Səhv görsəniz, mətn parçasını seçin və Ctrl + Enter düyməsini basın
    PAYLAŞ:
    Kompüterlər və müasir qurğular