Program MK yang paling berbeda. Ini adalah stm, lattice, microchip, nuvoton, altera, dll yang terkenal dan hal-hal eksotis seperti azoteq, silicon works atau freescale dari beberapa rilis tahun 2003. Semuanya (yah, hampir semuanya) mengembangkan protokol mereka sendiri, unik, yang tidak dimiliki orang lain dan itu adalah yang terbaik. Meskipun dipegang di bawah slogan universal. Dan semua rangkaian protokol universal ini menyenangkan dengan keragamannya. Jika ada yang dilebih-lebihkan di sini, itu agak berlebihan.
Tapi artikel terbaru ini mendorong saya untuk menulis di sini... Sampel untuk keluarga gd32 yang berbeda baru saja datang kepada saya dan, setelah menulis program untuk memprogram semua keluarga yang lebih rendah, saya membanjiri keluarga RISC-V. Dan saya melihat artikel ini. Nah, saya pikir, jika ada yang tertarik untuk menceritakan kembali datasheet tersebut, maka datasheet pemrograman pemrograman mungkin juga menarik.
Keluarga yang lebih muda diprogram melalui JTAG dan SWD (dengan sedikit pengecualian, di mana hanya ada SWD.gd32f130xx, misalnya). gd32vf, di sisi lain, hanya memiliki JTAG. Tapi JTAG atau SWD hanyalah alat. Mengemudi dengan alat ini terjadi dengan cara yang sangat berbeda. Jika Anda dapat membaca Spesifikasi Arsitektur Antarmuka Debug ARM tentang gd32f dan semuanya dijelaskan dengan cukup jelas di sana, maka tentang gd32vf akan tercoreng dalam Dukungan Debug Eksternal RISC-V dan Manual Set Instruksi RISC-V. Dan dua karya ini tidak bisa dikuasai dengan setengah tendangan. Yang terakhir ini juga memiliki subtitle Volume II. Ini mengkhawatirkan. Jadi ada juga babi dengan nomor 1 dan kemungkinan nomor 3 dan 4.
Menurut Dukungan Debug Eksternal RISC-V, akses ke register dapat dilakukan dengan dua cara:
- Menggunakan Perintah Abstrak
- Menggunakan Program Buffer
Untuk mengingat tiga:
- Menggunakan Akses Bus Sistem (hilang dari GD32VF)
- Menggunakan Program Buffer
- Menggunakan Akses Memori Abstrak
Karena GD32VF tidak memiliki Akses Bus Sistem (bit "akses bus sistem didukung" dalam register sbcs), dan tidak ada kegembiraan dalam menggunakan buffer program dan menulis assembler di sana, ada cara yang sangat baik untuk bertahan dengan perintah. Pada awalnya itu sama sekali tidak bisa dimengerti oleh saya di mana orang-orang pintar sialan ini mendapatkan nomor register (Nomor register yang bisa diakses). Deskripsi tentang nilai regno dengan bangga menyatakan: Jumlah register yang akan diakses, seperti yang dijelaskan pada Tabel 3.3.
Tapi di mana tepatnya. Tapi kemudian saya menemukannya di lembar data yang berdekatan yang disebutkan di atas (Manual Set Instruksi RISC-V. Volume 2) dan matahari bersinar.
Jadi semuanya berhasil. Semuanya ternyata lebih nyaman dibandingkan dengan gd32f. Dari sudut pandang menuangkan kode ke dalamnya. Tapi itu baru permulaan. Sekarang saya perlu menulis monitor untuk itu. Untuk membuatnya lebih cepat dari pada cepat. IAR tidak mengizinkan saya mengunduh WORKBENCH saya darinya, meskipun dia membual tentang hal itu dengan kekuatan dan kekuatan. Saya masih belum menemukan tempat untuk mengklik dan mendownload. Kepala Manajer China yang mengirim sampel mengatakan bahwa mereka menggunakan NucleiStudio dan saya mengunduhnya dan menginstalnya. Bagi saya, hal yang paling tidak nyaman yang saya gunakan adalah rocker. Saya tidak mengerti bagaimana bajingan di masa lalu membawa air ke dalamnya dan kemudian menjadi kering. Kepala saya basah kuyup. Tapi NucleiStudio telah mengalahkan rockernya. Secara umum, setelah banyak penderitaan, saya berhasil memasukkan data dan fungsinya ke tempat yang tepat dalam memori. Saya yakin itu bisa dilakukan dengan lebih anggun, tapi saya belum cukup.
Ini terlihat seperti ini.
Kami perlu menemukan skrip asli (saya menemukannya di suatu tempat di perut gerhana ini, apakah itu salah), yang berisi banyak coretan yang tidak dapat dipahami dan menambahkan deskripsi alamat yang diperlukan di sana
. = 0x20000000;
.data_sect : { *(.data_sect) }
. = 0x20000400;
.a_sect : { *(.a_sect) }
. = 0x20000500;
.f_sect : { *(.f_sect) }
Namun, seberapa banyak file * .icf IAR terlihat jauh lebih jelas dan sederhana! Tapi ini masalah kebiasaan, kurasa. Ketika saya mencari file yang tidak menguntungkan ini, Google meyakinkan saya sepanjang waktu bahwa tidak ada yang lebih kuat dan lebih kuat dan lebih keren dan lebih fleksibel daripada skrip tautan. Mungkin, tapi aku lelah. Bagaimanapun. Disekop.
Sekarang saya hanya perlu mengatur ulang PC dan semuanya akan bekerja dengan kecepatan yang mengerikan. Tapi monitornya tetap tidak berfungsi. Dan sekarang paragraf tempat saya memulai semua ini. Yang akan membantu peneliti RISC-V-Miracle di masa depan.
Ini dia.
Untuk mengatur ulang PC, Anda hanya perlu menulis nilainya ke register dpc, kemudian di awal hart, nilainya akan disalin ke PC. Hingga saat ini, program telah menulis dan membaca banyak register lain. Dengan sukses besar, saya harus akui. Dan monitornya tidak berfungsi. Ternyata, untuk menulis ke dpc, Anda perlu menulis di sana, lalu membaca dari sana. Mengapa demikian, saya tidak tahu. Saya membaca semua dokumentasi lagi dan "mengikuti nasib para pahlawan dengan penuh semangat." Tetapi saya tidak pernah menemukan mengapa demikian.
Setelah itu, semuanya berhasil. Satu-satunya ketidaknyamanan untuk membaca sesuatu dari ingatan adalah menghentikan hart lalu memulainya lagi. Ini tidak terlalu nyaman, tapi tidak menakutkan. Misalnya, untuk mengetahui bagaimana monitor terasa di sana dan apakah sudah selesai bekerja, Anda perlu menghentikan hart, membaca memori yang diperlukan dan, jika perlu, mulai lagi.
Saya berharap bahwa paragraf tentang dpc akan menghemat beberapa jam waktu seseorang dan tidak mungkin melakukan apa pun selama waktu yang dihemat ini.