المزيد من RISC-V

أنا أفعل برمجة متحكم. وأنا لا أكتب لهم برامج فقط ، ولكن في الغالب برامج للمبرمجين. وأردت أن أشارك بعض الفرح من عضو الكنيست المكتسب. فجأة ، يعاني شخص ما الآن من gd32vfxx.



برنامج MK الأكثر اختلافًا. هذه هي المشهورة stm ، lattice ، microchip ، nuvoton ، alta ، وما إلى ذلك والأشياء الغريبة مثل azoteq ، أعمال السيليكون أو النطاق الحر لبعض إصدارات 2003. كلهم (حسنًا ، جميعهم تقريبًا) يطورون بروتوكولهم الخاص ، الفريد ، والذي لا يمتلكه أي شخص آخر وهو الأفضل. رغم أنه يقام تحت شعار الكوني. وكل هذه المجموعة من البروتوكولات العالمية ترضي بتنوعها. إذا كانت هناك مبالغة هنا ، فهي قليلة جدًا.



لكن هذا المقال الأخير دفعني للكتابة هنا... وصلتني للتو عينات لعائلات gd32 المختلفة ، وبعد أن كتبت برامج لبرمجة جميع العائلات الدنيا ، كنت أتفوق على عائلة RISC-V. ورأيت هذا المقال. حسنًا ، أعتقد أنه إذا كان شخص ما مهتمًا بإعادة سرد ورقة البيانات ، فقد تكون ورقة بيانات البرمجة مثيرة للاهتمام أيضًا.



تتم برمجة العائلات الأصغر سنًا عبر JTAG و SWD (مع استثناءات طفيفة ، حيث لا يوجد سوى SWD.gd32f130xx ، على سبيل المثال). من ناحية أخرى ، يحتوي gd32vf فقط على JTAG. لكن JTAG أو SWD ليست سوى أداة. تحدث القيادة باستخدام هذه الأدوات بطرق مختلفة جدًا. إذا كان بإمكانك قراءة مواصفات هندسة واجهة ARM Debug حول gd32f وكل شيء موصوف بوضوح هناك ، فسيتم تلطيخ gd32vf في دعم التصحيح الخارجي RISC-V ودليل مجموعة تعليمات RISC-V. ولا يمكن إتقان هذين العملين بنصف ركلة. هذا الأخير له أيضًا عنوان فرعي المجلد الثاني. هذا انزعاج. لذلك يوجد أيضًا خنزير يحمل الرقم 1 وربما الرقمين 3 و 4.



وفقًا لـ RISC-V External Debug Support ، يمكن الوصول إلى السجلات بطريقتين:



  1. باستخدام الأمر المجرد
  2. باستخدام برنامج العازلة


للذكرى الثالثة:



  1. استخدام الوصول إلى ناقل النظام (GD32VF لا)
  2. باستخدام برنامج العازلة
  3. استخدام الوصول إلى الذاكرة المجردة


نظرًا لأن GD32VF لا يحتوي على نظام وصول إلى ناقل النظام ("وحدات وصول ناقل النظام مدعومة" في سجل sbcs) ، ولا توجد متعة في استخدام مخزن مؤقت للبرنامج ومجمع الكتابة هناك ، فهناك طريقة جيدة جدًا للتعامل مع الأوامر. في البداية كان الأمر غير مفهوم تمامًا بالنسبة لي من أين يحصل هؤلاء الرجال الأذكياء على رقم السجل للوصول إليه. يقول وصف قيمة regno بفخر: رقم السجل الذي يجب الوصول إليه ، كما هو موضح في الجدول 3.3.



صورة



لكن أين بالضبط. ولكن بعد ذلك وجدتها في ورقة البيانات المجاورة المذكورة أعلاه (دليل مجموعة تعليمات RISC-V. المجلد 2) وأشرقت الشمس.



لذلك كل شيء يعمل. كل شيء اتضح أنه أكثر ملاءمة من ذلك الخاص بـ gd32f. من وجهة نظر سكب الكود فيه. ولكنها فقط كانت البداية. الآن أنا بحاجة لكتابة شاشة لذلك. لجعلها أسرع من السرعة. لم تسمح لي IAR بتنزيل WorkBENCH الخاص بي منه ، على الرغم من أنه كان يتفاخر به بقوة وبقوة. ما زلت لم أجد مكانًا للنقر عليه وتنزيله. قال المدير الصيني الذي أرسل العينات إنهم كانوا يستخدمون NucleiStudio وقمت بتنزيله وتثبيته. بدا لي أن الشيء الأكثر إزعاجًا الذي استخدمته هو الروك. لا أفهم كيف حمل الأوغاد في الماضي الماء فيه ثم جفوا. كنت مبللاً إلى أعلى رأسي. لكن NucleiStudio تفوق على الروك. بشكل عام ، بعد الكثير من المعاناة ، تمكنت من دفع البيانات والعمل في الأماكن الصحيحة في الذاكرة. أنا متأكد من أنه يمكنك القيام بذلك بشكل أكثر رشاقة ، لكنني لم أكن كافيًا.



تبدو هكذا.



نحتاج إلى العثور على النص الأصلي (وجدته في مكان ما في أحشاء هذا الكسوف ، سواء كان ذلك خطأ) ، والذي يحتوي على مجموعة من الرسومات غير المفهومة وإضافة وصف للعناوين الضرورية هناك



  . = 0x20000000;
  .data_sect : { *(.data_sect) }
  . = 0x20000400;
  .a_sect : { *(.a_sect) }
  . = 0x20000500;
  .f_sect : { *(.f_sect) }


ومع ذلك ، ما مدى وضوح ملف * .icf الخاص بـ IAR وأبسط! لكن هذه مسألة عادة ، على ما أعتقد. عندما كنت أبحث عن هذا الملف المؤسف ، أكدت لي Google طوال الوقت أنه لا يوجد شيء أقوى وأقوى وأكثر برودة ومرونة من نص رابط. ربما ، لكني منهك. على أي حال. مجرفة.



الآن أنا فقط بحاجة إلى إعادة ترتيب جهاز الكمبيوتر وسيعمل كل شيء بسرعة رهيبة. لكن الشاشة ما زالت لا تعمل. والآن الفقرة التي بدأت بها كل هذا. مما سيساعد الباحثين المستقبليين في RISC-V-Miracle.



ها هو.



لإعادة ترتيب جهاز الكمبيوتر ، تحتاج فقط إلى كتابة قيمته في سجل dpc ، ثم في بداية hart ، سيتم نسخ القيمة إلى جهاز الكمبيوتر. حتى هذه النقطة ، قام البرنامج بالفعل بكتابة وقراءة مجموعة من السجلات الأخرى. بنجاح كبير ، يجب أن أعترف. والشاشة لا تعمل. كما اتضح فيما بعد ، لكي تكتب إلى dpc ، تحتاج إلى الكتابة هناك ، ثم القراءة من هناك. لماذا هذا الأمر كذلك ، لا أعرف. قرأت كل الوثائق مرة أخرى و "تابعت مصير الأبطال بإثارة". لكني لم أجد سبب ذلك.



بعد ذلك ، كل شيء يعمل. الإزعاج الوحيد لقراءة شيء ما من الذاكرة هو التوقف عن هارت ثم إعادة تشغيله مرة أخرى. إنها ليست مريحة للغاية ، ولكنها ليست مخيفة. على سبيل المثال ، لمعرفة كيف تشعر الشاشة هناك وما إذا كانت قد انتهت من العمل ، فأنت بحاجة إلى التوقف وقراءة الذاكرة المطلوبة ، وإذا لزم الأمر ، ابدأ من جديد.



آمل أن توفر الفقرة الخاصة بـ dpc على شخص ما بضع ساعات من الوقت وسيكون من الممكن عدم فعل أي شيء كل هذا الوقت الذي تم توفيره.



All Articles