ការផ្លាស់ប្តូរចេញជាមួយ mecrisp-stellaris និង emello

ការផ្លាស់ប្តូរចេញជាមួយ mecrisp-stellaris និង emello

January 27, 2023 Uncategorized 0

នៅក្នុងវគ្គចុងក្រោយខ្ញុំបានគាំទ្របន្តិចបន្តួចទៅលើវេទិកាអភិវឌ្ឍន៍ដែលនៅតែមិនអាចទទួលបានដែលមិនមានសម្រាប់ឧស្សាហកម្មដែលវាធ្លាប់បានឃើញសព្វថ្ងៃនេះប៉ុន្តែក៏សម្រាប់ពួក Hacker ផងដែរ។ ។ ខ្ញុំប្រហែលជាបានល្បួងអ្នកឱ្យទទួលបានបំណែករឹងពីរបីដុំ។ ពេលនេះនៅជុំវិញយើងនឹងទទួលបានប្រព័ន្ធចេញមកលើផ្នែករឹងនោះហើយដំណើរការជាកាតព្វកិច្ច “ជំរើស” ហើយមានពណ៌ខ្មៅ។ ប៉ុន្តែបន្ទាប់មកយើងក៏នឹងជ្រលក់ចូលទៅក្នុងលក្ខណៈពិសេសមួយដែលធ្វើឱ្យមានលក្ខណៈស្អាតនៅលើមីក្រូវ៉េវ: ងាយស្រួល។

ធ្វើការ!

ផាបផវ

Mecrisp-Stellaris មានចំនួនយ៉ាងច្រើននៃក្រុមហ៊ុន Microcontroltrollers របស់ក្រុមហ៊ុនដៃប៉ុន្តែខ្ញុំនឹងផ្តោតលើបន្ទះឈីប Stm32f103 ដែលអាចរកបានសម្រាប់ការថតចម្លងដ៏ធំមួយនៃ Maple Mini ដែលជារឿយៗត្រូវបានគេហៅថាក្រុមប្រឹក្សាប្រព័ន្ធអប្បបរមា “Stm32f103 ។ “ឬ” ថ្នាំពណ៌ខៀវ “ដោយសារតែទម្រង់ទម្រង់និងការពិតដែលថាធ្លាប់មានពណ៌ក្រហមសម្រាប់លក់។ Microcontroller នៅលើយន្តហោះអាចដំណើរការបាន 72 MHz មាន RAM 20 គីឡូបៃនិង RAM ចំនួន 64 ឬ 128 KB Flash ។ វាមានម្ជុលច្រើនកន្លែងឌីជីថលមាន 5 v ធន់នឹងហើយវាមានទាំងអស់នូវគ្រឿងក្រអបខ័ណ្ឌ Microcontroltroltroller ធម្មតា។ វាមិនមែនជាថាមពលដែលមានប្រសិទ្ធភាពបំផុតនោះទេហើយវាមិនមានឯកតាចំនុចអណ្តែតឬអាន់ឌីទេប៉ុន្តែវាជាការរចនាចាស់ដែលមានគ្រួសដែលមានលុយតិចជាងវា។

អ្នកសរសេរកម្មវិធីបានភ្ជាប់អំណាចលើយូអេសប៊ី
ភាពអស្ចារ្យស្រដៀងគ្នានៃការងារផលិតកម្មដ៏ធំសម្រាប់អ្នកសរសេរកម្មវិធីដែលអ្នកត្រូវមានដំបូងបង្អស់ដែលមានពន្លឺចៃ។ អ្វីដែលក្លូននៃ St-Link V2 នឹងដំណើរការល្អ។ (ហួសចិត្តគ្រប់គ្រាន់ផ្នែករឹងនៅខាងក្នុងអ្នកសរសេរកម្មវិធីគឺស្ទើរតែដូចគ្នាទៅនឹងគោលដៅ។ ) ចុងក្រោយដោយពិចារណាថាការរត់ចេញដូចក្នុងសំបកអន្តរកម្មអ្នកនឹងត្រូវការភ្ជាប់សៀរៀលទៅនឹងបន្ទះអេស 3 ។ នោះប្រហែលជាបង្ហាញពីអាដាប់ធ័រយូអេសប៊ី / សៀរៀល។

ការរៀបចំទាំងមូលនេះនឹងមិនចំណាយប្រាក់ច្រើនទេច្រើនជាងអាហារដែលមានល្បឿនលឿនជាងនេះហើយអ្នកសរសេរកម្មវិធីនិងយូអេសប៊ី / អាដាប់ធ័រអាដាប់ទ័រគឺជារបស់ដែលអ្នកចង់មាននៅក្នុងឧបករណ៍របស់អ្នកប្រសិនបើអ្នកមិនទាន់បានធ្វើក៏ដោយ។

អ្នកអាចផ្តល់ថាមពលដល់ក្តារដោយផ្ទាល់តាមរយៈម្ជុល 3.3 និងម្ជុលផ្សេងៗគ្នារាយប៉ាយជុំវិញក្តារឬតាមរយៈរន្ធយូអេសប៊ីយូអេសប៊ីឬម្ជុល 5V នៅលើក្តារគោលដៅ។ ជម្រើសពីរចុងក្រោយឆ្លងកាត់បទបញ្ជា 3.3 V មុនពេលចូលរួមជាមួយម្ជុលអង្កេត 3.3 ។ ម្ជុលទាំងអស់មានទំនាក់ទំនងគ្នាដូច្នេះវាល្អបំផុតប្រសិនបើអ្នកប្រើតែការផ្គត់ផ្គង់ថាមពលតែមួយប៉ុណ្ណោះក្នុងពេលតែមួយ។

កម្មវិធីបង្កប់: ប្រព័ន្ធចេញ

ទៅទទួលបានកញ្ចប់ព័ត៌មានថ្មីៗរបស់ Mecrisp ពិសេសពី Github ។ បានបញ្ចូលក្នុងថត “រ៉ូម” គឺជាប្រព័ន្ធទីលានដែលនឹងមានប្រសិទ្ធិភាពសម្រាប់ការបង្ហាញនៅទីនេះ។ ខ្ញុំបានផ្ទុកនៅក្នុងបណ្ណាល័យដែលគួរឱ្យគោរពមួយពីបណ្ណាល័យដែលគួរឱ្យគោរពរបស់ [JCW] សម្រាប់ [JCW] “ដែលជាការផ្គត់ផ្គង់អ្វីៗដូចជាការកំណត់រចនាសម្ព័ន្ធ GPIO ងាយស្រួលមុខងារពន្យារពេលនិងដូច្នេះ។ មានបណ្ណាល័យជាច្រើនមានច្រើនទៀតដែលអាចរកបានហើយយើងនឹងពិនិត្យមើលពួកគេនៅពេលក្រោយនៅពេលដែលយើងត្រូវការពួកគេ។

អ្វីដែលត្រជាក់បំផុតក្នុងការប្រើប្រាស់ប្រព័ន្ធចេញគឺថាកម្មវិធីគាំទ្រតិចតួចណាស់គឺចាំបាច់តាមមធ្យោបាយណាមួយ – អ្នកបកប្រែផ្ទាល់បានចងក្រងលេខកូដផ្ទាល់ខ្លួនហើយអ្នកធ្វើអន្តរកម្មជាមួយវានៅលើស្ថានីយសៀរៀល។ អ្វីគ្រប់យ៉ាងកើតឡើងនៅខាងក្នុងមីក្រូវ៉េវ។ បន្ទាប់មកឧបសគ្គមួយ, បន្ទាប់មកកំពុងឈានទៅរកបន្ទះឈីប។ នៅសម័យចាស់នេះធ្លាប់ធ្វើដោយបិទបៃដោយដៃហើយតាមពិតគឺតូចល្មមដែលមានភាពអៀនខ្មែរតាមវិធីនេះអាចធ្វើទៅបាន។ ប៉ុន្តែអ្នកបានទទួលអ្នកសរសេរឈីបនោះរួចហើយ?

[Texane] របស់ Texane គឺជាមធ្យោបាយងាយស្រួលបំផុតក្នុងការចេញចូលក្នុងបន្ទះឈីបរបស់អ្នក។ ទាញយកពួកវាពី GitHub ហើយសាងសង់វាដោយខ្លួនឯងឬសាកល្បងសំណាងរបស់អ្នកជាមួយអ្នកគ្រប់គ្រងកញ្ចប់របស់អ្នក។ (វីនដូស៍អ្នកមិនត្រូវបានទុកចោលផងដែរ។ ទោះបីជាប្រព័ន្ធគោលពីរនោះមិនមានបច្ចុប្បន្នភាពក៏ដោយក៏វានឹងធ្វើបានដែរ។ )

ភ្ជាប់ខ្សែដៃកម្មវិធីក្នុងរបៀបដែលមានភស្តុតាងហើយចេញពាក្យបញ្ជាវេទមន្ត St-Flash Erase និង ST-Flash សរសេរ Mecrisp-Stellaris-Hackaday-Edition.bin 0x8000000 ។ ក្នុងរយៈពេលប្រាំវិនាទីអ្នកនឹងត្រៀមខ្លួនជាស្រេចដើម្បីរំ rem ក។

– GND

SWCLK – CLK

Swsio – DIO

ត្រូវមានអ្នកសរសេរកម្មវិធីគឺជាការរំខានមួយប្រសិនបើអ្នកមិនមានប៉ុន្តែវានឹងធ្វើឱ្យនៅសល់នៃជីវិតរបស់អ្នកកាន់តែងាយស្រួលហើយការទទួលបានគឺជាមូលដ្ឋាននៅពេលចុច “ប្រាក់ខែ” និងរង់ចាំ។ របស់យើង [អាល់វីលៀម] (គ្មានទំនាក់ទំនង) មានការប្រកាសថ្មីៗនៅលើការប្រើប្រាស់កម្មវិធីដូចគ្នាសម្រាប់ការកែកំហុស C ឬ Arduino ជាមួយ GDB ដែលមានពេលវេលារបស់អ្នកដើម្បីកំណត់ពេលវេលារបស់អ្នក។

សូហ្វវែរ

ការភ្ជាប់សៀរៀលដែលបំពាក់ដោយកុំព្យូទ័រយួរដៃ
ដាក់កម្មវិធីសរសេរកម្មវិធីឱ្យឆ្ងាយសម្រាប់ពេលនេះហើយភ្ជាប់ទៅអេសអេស 32 លើសៀរៀល; អត្រា Baud លំនាំដើមត្រូវតែមានចំនួន 115.200 ។ ប្រសិនបើអ្នកមិនទាន់មានថាមពលដែលមិនបានដូនជាប្រណីអ្នកប្រហែលជាត្រូវចុចប៊ូតុងកំណត់ឡើងវិញនៅលើផ្ទាំងអេស។ អេស 32 ។ ប្រសិនបើទាំងអស់ដំណើរការបានល្អអ្នកនឹងត្រូវបានស្វាគមន៍ដោយលលាដ៍ក្បាលដែលធ្លាប់ស្គាល់ – និងឈើឆ្កាង។ MECRISP កំពុងរំពឹងថានឹងមានខ្សែរនៅចុងបញ្ចប់នៃបន្ទាត់ដូច្នេះប្រសិនបើអ្នកផ្ញើ LF + CR អ្នកនឹងចុចវាយដោយជោគជ័យពីរដង។

A9 TX – សៀរៀល RX

A10 RX – សៀរៀល tx

– GND

FLE របស់ [JCW] គឺជាអ្នកត្រាប់តាមស្ថានីយស្ថានីយសៀរៀលដ៏ស្រស់ស្អាតពហុវេទិកាសម្រាប់កម្មវិធីនេះ។ អ្វីដែលវាធ្វើបានថាកម្មវិធីស្ថានីយធម្មតារបស់អ្នកមិនអនុញ្ញាតឱ្យអ្នកបញ្ចូលបន្ទាត់ពាក្យបញ្ជាម្តងទៀតដោយព្រួញឡើងលើដែលធ្វើឱ្យការមើលថែកំហុសជាច្រើនកាន់តែងាយស្រួលជាងការវាយពាក្យបញ្ជាវែង។ វាផងដែរautomatically includes other files, which I made substantial use of in building the binary for this article. You don’t need to run folie, but I bet you’ll like it.

សួស្តី​ពិភពលោក

Now it’s “Hello World” time. If you’re new to Forth, here comes an very selective introduction. type 2 2 + and hit enter. It says ok.. That’s reassuring, right? now type . (read “dot”) and it will print out the not-surprising result. dot is the first of a few global Forth shorthands that you’ll want to internalize. a lot of commands with a dot print out their results immediately. .s (dot-ess) prints out the stack contents, for instance. two a lot more idioms that we’ll see a lot of are @ for getting a variable or reading an input and ! for setting a variable or output. read these as “get” and “set” in your head when scanning Forth code.

Next, let’s see how to write a function. : starts a function definition and ; ends it. So : four 2 2 + ; defines a function that adds two and two together. (And compiles it in real time!) You can then turn around and call this function immediately. four .s will show you that our function has left the sum of two and two on the stack. In this sense, functions in Forth aren’t really functions. They don’t take explicit arguments or return explicit values. They just operate on whatever data is on the stack, and leave the results there too. That’s why Forth functions are called “words”. I’ll be sticking to this convention from now on.

Here, finally, is “Hello World”: : hw .” Hello, World!” cr ;” Strings are a little odd in Forth, mainly because of the way the language is parsed — the compiler reads up to a space and then executes what it has found, so there has to be a space between the print-a-string command (.”) and the first character that you want to print. The print command scans forward until it finds a closing “, though, so you don’t need an extra space there. cr sends a carriage return. type hw at the prompt. Hello, World!

Blinking LEDs

Even though serial text input and output is so easy in Forth, blinking an LED is the standard “hello world” of microcontrollers, so it’s time for some GPIO. because the system is already configured for this particular microcontroller board, turning an LED on is as easy as typing led.on at the prompt. want to turn it off? led.off. manual blinking will get old pretty quickly, though, so let’s write a blink word. : blink led.on 100 ms led.off 200 ms ; will do the trick. try blink blink blink. See my blink demo code for elaboration. (More on ms in a few thousand milliseconds.)

The details of the GPIO initialization are hidden in core/Hackaday/LED.fs and in Embello’s stm32f1/io.fs respectively. Digging through, you’ll see the standard initialization procedure: the particular pin is set as output by flipping some bits in the STM32’s peripheral control registers. [jcw] has defined a bunch of these, making setting a pin as output, with the push-pull driver, as easy as PC13 OMODE-PP io-mode!. (Remember the “!” indicates set the value in a variable or register.)

To configure pin PA7 for ADC input: PA7 IMODE-ADC io-mode!. testing buttons, using the built-in pullup or pulldown resistors: PA3 IMODE-PULL io-mode! and then set the output to pull up or down using true PA3 io! or PA3 ios!. You’ll then be able to read the button state with PA3 io@ (“io get”) later on.

GPIO on the STM32 chips is very flexible, and if you want to get deep into the configuration options in the datasheet, you can set all of this fairly easily using [jcw]’s io.fs code. For instance, io.all prints all of the GPIO registers and their values, which is a great help for interactive debugging. That said, there’s some room here for a a lot more user-friendly hardware-abstraction layer, if you want to contribute one.

Multitasking on the Quick

So now we’ve got a blinking LED and serial-port printing “Hello World”. Not a bad start, and both of these make good use of Forth’s interactivity: the LED only lights up when you type blink. one of the chief virtues of Forth, for me, is the ease of going between interactive testing of words like this, and then deploying the functionality in a working system. One reason is that nearly all Forths support basic cooperative multitasking. Here’s what I mean.

First, let’s loop our blink function so that we don’t have to type so much. : bb begin blink again ; creates a function, bb for “bad blink”, that will run forever. The problem with “run forever” in Forth is that you never get back to the interpreter’s command line without physically pressing the reset button, and then everything you were working on in RAM is lost.

Instead, let’s blink in a loop with a way out. : gb begin blink key? until ; creates a function that will run our blink command until there’s some input from the keyboard — the return crucial is pressed. This particular looping construct is very beneficial for testing out functions that you’d like to run continuously, without hanging the system. keep it in ចិត្ត។

នៅពេលដែលយើងបានកែសំរួលមុខងារព្រិចភ្នែករបស់យើងឱ្យដំណើរការតាមរបៀបដែលយើងចង់បានវាសូមបង្កើតភារកិច្ចផ្ទៃខាងក្រោយដូច្នេះវាអាចព្រិចភ្នែកដោយគ្មានការយកចិត្តទុកដាក់។

ភារកិច្ច: Blinktask
: ព្រិចភ្នែក &
ធ្វើឱ្យសកម្ម Blinktask ធ្វើឱ្យសកម្ម
ចាប់ផ្តើមភ្លឹបភ្លែតៗម្តងទៀត
;
ការធ្វើកិច្ចការច្រើន
ព្រិចភ្នែក &

យ៉ាងខ្លីភារកិច្ច: ពាក្យបង្កើតចន្លោះចងចាំមួយចំនួនសម្រាប់ភារកិច្ចផ្ទៃខាងក្រោយភ្លឹបភ្លែតៗរបស់យើងដែលយើងកំពុងហៅ Blinktask ។ មុខងារព្រិចភ្នែកនិងការងារនៅផ្ទៃខាងក្រោយ។ ព្រិចភ្នែក & ចាប់ផ្តើមដោយប្រកាសថាវានឹងប្រើបរិបទកិច្ចការភ្លឹបភ្លែតៗហើយវាត្រូវតែចាប់ផ្តើមដំណើរការ។ បន្ទាប់មកវាចូលទៅក្នុងរង្វិលជុំភ្លឹបភ្លែតៗដែលគ្មានកំណត់ដែលវាមិនដែលស្លឹក។ ការធ្វើកិច្ចការច្រើនប្រែក្លាយការធ្វើកិច្ចការច្រើនហើយព្រិចភ្នែកនិងការប្រព្រឹត្តភារកិច្ចរបស់យើង។ ដំណើរការវាហើយព្រិចភ្នែកដែលដឹកនាំខណៈពេលដែលអ្នកនៅតែអាចធ្វើអន្តរកម្មជាមួយកុងសូល។ ផ្អែមល្ហែម។ វាយភារកិច្ចហើយអ្នកនឹងឃើញថាមានសកម្មភាពពីរយ៉ាងគឺមួយគឺប៊្លុករបស់យើងហើយមួយទៀតគឺជាអ្នកបកប្រែអន្តរកម្ម។

ប៉ុន្តែតើភារកិច្ចព្រិចភ្នែកដឹងយ៉ាងដូចម្តេចនៅពេលដែលត្រូវផ្តល់ជូនដល់ដំណើរការដំណាលគ្នាផ្សេងទៀត? និយាយចេញមកពាក្យផ្អាកទិន្នផលពីបរិបទបច្ចុប្បន្នហើយបន្តទៅមុខទៀតការធ្វើកិច្ចការច្រើនរង្វង់មូលរ៉ូប៊ីន។ មុខងាររបស់ MS ក្នុងចំណោមអ្នកដទៃទៀតមានពាក្យបញ្ជាផ្អាកដូច្នេះអ្វីដែលមើលទៅដូចជាការពន្យាពេលរារាំងនៅក្នុងការរៀបចំភារកិច្ចតែមួយបញ្ចប់ការលេងដ៏អស្ចារ្យជាមួយនឹងភារកិច្ចផ្សេងទៀតរបស់អ្នក។

អ្វីដែលអស្ចារ្យអំពីការធ្វើពហុមុខងារកិច្ចសហប្រតិបត្តិការគឺថាអ្នកគ្រប់គ្រងយ៉ាងពិតប្រាកដនៅពេលដែលនឹងមានកុងតាក់បរិបទដែលអាចជួយលុបបំបាត់ការប្រេះឆាដែលអ្នកនឹងរកឃើញនៅក្នុងប្រព័ន្ធជាមុន។ គុណវិបត្តិគឺថាអ្នកទទួលខុសត្រូវក្នុងការចងចាំឱ្យផ្អាកមុខងាររបស់អ្នកឥឡូវនេះហើយបន្ទាប់មកអ្នកត្រូវតែផ្ទៀងផ្ទាត់ពេលវេលារបស់អ្នក។ ជាការពិតនេះគឺជាអ្នកកែសំរួលផ្ទៃក្នុងរបស់ក្រុមហ៊ុនដៃដែលមានដៃដែលមានដៃដែលមានដៃដែលមានដៃយ៉ាងបរិបូណ៌។

ចំណុចសំខាន់នៃការធ្វើកិច្ចការច្រើននៃការធ្វើពហុផ្នែកខាងក្រៅគឺវាធ្វើឱ្យលំហូរការងារដ៏អស្ចារ្យសម្រាប់ការសរសេរការធ្វើតេស្តនិងដាក់ពង្រាយដេមិនតូច: មុខងារដែលចង់ “ជានិច្ច” ជានិច្ចកាល “។ ដំបូងសរសេរមុខងារដែលធ្វើសកម្មភាពម្តង។ ទីពីរសាកល្បងវាក្នុងរង្វិលជុំដែលមានញាស់រត់គេចខ្លួន។ ទីបីនៅពេលដែលវាកំពុងដំណើរការយកការរត់គេចខ្លួនហើយធ្វើឱ្យមានភារកិច្ចផ្ទៃខាងក្រោយសម្រាប់វា។ បន្ទាប់មកអ្នកអាចបើកនិងបិទវាដោយប្រើទំនេរនិងភ្ញាក់, សូម្បីតែពីការងារផ្សេងទៀត។ សូមមើលពហុភាគីពិសេសរបស់ Mecrisp ប្រភពសម្រាប់ព័ត៌មានលម្អិតបន្ថែមទៀត។

មាន​អ្វី​បន្ទាប់?

រហូតមកដល់ពេលនេះយើងបានបង្កើត Mecrisp-Stellaris ដោយមានបណ្ណាល័យបន្ថែមពីក្រុមហ៊ុន Jeelabs ‘Mecelbs’ Mecelbs Frompuckewuk Growsh Commandwork និងដំណើរការការបង្ហាញរហ័សមួយចំនួន។ ប្រសិនបើនេះបានបង្ហាញចំណាប់អារម្មណ៍របស់អ្នកខ្ញុំនឹងនាំអ្នកទៅក្នុងការបង្កើតកម្មវិធីពិតប្រាកដមួយចំនួននៅពេលក្រោយ។ មានអ្វីជាច្រើនទៀតដែលត្រូវនិយាយអំពីវិធីដែល Mecrisp ដោះស្រាយនូវភាពមិនប្រក្រតីនៃពន្លឺធៀបនឹង RAM, ធាតុចូលនិងលទ្ធផល, និងការអនុវត្តនៃការអភិវឌ្ឍអន្តរកម្ម។ ផ្នែកខ្លះនៃការធ្វើការដែលកំពុងធ្វើការនៅខាងមុខនឹងបង្កើនក្បាលដែលមានរាងស្អាតហើយយើងនឹងរៀនស្រឡាញ់ពួកគេ។

ក្នុងពេលនេះសូមទទួលបានក្តារ Stm32f103 ដែលមានតំលៃថោករបស់អ្នកបានផ្ទុះឡើងជាមួយនឹងប្រព័ន្ធគោលពីររបស់យើងហើយត្រូវបានប្រើបន្តិចបន្តួចក្នុងការលេងនៅជុំវិញបរិស្ថាននៅលើបន្ទះឈីប។ ព្រិចភ្នែក LED មួយចំនួន។ ក្រឡេកមើលជុំវិញសទ្ទានុក្រម Mecrisp-stellaris និងឯកសារអាបតីវ API ។ ឬគ្រាន់តែវាយបញ្ចូលបញ្ជីដើម្បីមើលពាក្យបញ្ជាទាំងអស់តាមការចោលរបស់អ្នកហើយចាប់ផ្តើមលួចស្តាប់។

Leave a Reply

Your email address will not be published. Required fields are marked *