Why do you want to learn SCM without a future?
Because it's a good entrance.
Learning MCU can let us put aside the complex software structure and master the hardware operation first, such as looking at the schematic diagram, chip manual, writing program operation register, etc. In the last video, I just belittled the single chip microcomputer to nothing, saying that the single chip microcomputer has no future. In this video, I want to tell you that if there is no future, you should also learn the single chip microcomputer. Why?
First of all, I don't need to learn MCU, which means don't use the old learning methods to learn MCU. What is the old way?
·Hardware: do not use C51, STM32 these special MCU development boards. If you don't plan to engage in MCU development in the future, why do you use these chips? After studying for two or three months, you can use these registers clearly, and you can't use them. It's unnecessary.
·Software: do not use KEIL, MDK and other highly integrated software. If you use these software, you can write main (), and then call various libraries for fool operation. These easy-to-use tools encapsulate many technical details, making it impossible for us to understand the essence of bare metal and single chip microcomputer.
In the future, we will use a new set of methods to develop MCU. A new set of methods will be introduced later.
The reason why we have to learn MCU is that its knowledge is still useful for us to learn Linux. Let's first look at what a Linux system is all about. Software composition of an embedded Linux system: MCU bootloader â > linux driver â > linux app â > linux GUI (Android / Qt). When our PC is powered on, the BIOS will be displayed on the black screen. The purpose of this BIOS is to start the windows kernel. The windows kernel then mounts Disk C (system disk) and disk D (application disk), and finally starts applications, such as QQ and online games. Similarly, our Android phones or industrial control devices also have BIOS, but the embedded Linux system is not called BIOS, but bootloader. Its purpose is to start the Linux kernel. It first identifies the storage device where the application is located, mounts the root file system (Disk C and disk D in Windows system, called root file system in Linux), and finally starts the application.
Carefully analyze the bootloader. It starts the kernel. Where does it start the kernel? Obviously, it reads the kernel somewhere. For example, BIOS reads the windows kernel from disk C, and our bootloader reads the kernel from flash or SD card. Therefore, bootloader should have the ability to read flash or SD card. Some bootloaders also display logo, so it also has the ability to operate LC D. bootloader also needs to set the environment of the development board, such as initializing the clock, initializing the memory, and setting the network card. So many things are implemented in bootloader, which is too complex. It is very difficult to analyze the whole bootloader when you come.
So how do we learn? Take it apart and write a separate program, such as LED lighting, clock, network card and flash. These are single-chip microcomputer programs. Therefore, bootloader is a complete collection of single-chip microcomputer programs. In order to better learn bootloader, we should practice the hardware one by one in advance. When we are familiar with each hardware , and then combined, it's a bootloader.
Let's take another look at bootloader. After bootloader starts the kernel, the kernel mounts the root file system, which means that the kernel also has the ability to operate the hardware, which is the driver. First, let's take a look at a simple driver. First, our application calls open(), read(), write() These standard interfaces are used to access the hardware. Then enter the driver, which has the corresponding drive_open(), drive_read(), drive_write(). Finally, configure the hardware in the driver. For example, for an LED lighting driver, drive_open() should set the GPIO as the output pin, drive_read(), return the GPIO status, and driver_write() Write GPIO and let the pin output high level or low level.
For our LED driver, you need to provide drive_open(), drive_read(), drive_write(). This is its framework. The specific operation of hardware is hardware operation. Therefore, we are familiar with and master the hardware operation in the single chip microcomputer in advance. That is, the composition of the driver:
Driver = software framework hardware operation
You need to learn to see the schematic diagram, how to connect the hardware, read the chip manual, and know how to read and write registers. All these can be learned and mastered in the single chip microcomputer. When learning linux driver in the future, focus on the software framework.
We can learn single chip microcomputer in advance. The learning of single chip microcomputer allows us to put aside the complex software structure and master the hardware operation first, such as looking at the schematic diagram, chip manual, writing program operation register, etc. This is why single chip microcomputer has no future, and we also need to learn. It is because the hardware operation involved in it is very useful for our subsequent learning.
Now we know that we learn MCU not to master the development skills of MCU, but to master bootloader and hardware operation.
Original post transferred from: http://bbs.elecfans.com/jishu_1544437_1_1.html
{"site":{"site_id":3482,"site_type":1,"site_domain":"sandunjiaju.com","domain_mode":1,"original_domain":"sandunjiaju.com","language_code":"ar","is_init_domain":0,"is_shop":false,"is_ssl":1,"lang_prefix":"/","animate_name":"none"},"page":{"page_id":13199,"page_type":"ai_article_detail","page_code":423,"page_url":"/ai-article/mcu-knowledge-is-one-of-the-foundations-of-linux-driver-development.html","page_source":"","allowAnimat":0,"content_id":2720,"content_type":5,"detail_thumb":"https://img.yfisher.com/1620349909cls.png","detail_title":"MCU Knowledge Is One of the Foundations of Linux Driver Development","moq":1},"translateList":{"A new item has been added to your Shopping Cart":"تمت إضافة عنصر جديد إلى سلة التسوق الخاصة بك","account":"الحساب","Account Name":"أسم الحساب","Account Number":"رقم حساب","Account is not exists":"الحساب ليس موجودا","account security":"أمن الحساب","Active Commission":"لجنة نشطة","Add a review on the product":"أضف مراجعة على المنتج","Add to":"اضف إليه","Add to Cart":"أضف إلى السلة","address book":"دليل العناوين","affiliate links":"روابط تابعة","all":"الكل","All Orders":"جميع الطلبات","Already commented":"وعلق بالفعل","Are you sure to cancel this withdrawal?":"هل أنت متأكد من إلغاء هذا الانسحاب؟","Are you sure to delete the selected items?":"هل من المؤكد أنك تحذف العناصر المحددة؟","Are you sure you want to delete it?":"هل أنت متأكد أنك تريد حذف ذلك؟","Awaiting Payment":"انتظار الدفع","Awaiting Shipment":"في انتظار الشحن","Back":"خلف","Bank Transfer":"حوالة بنكية","bank address":"عنوان البنك","basic information":"معلومات اساسية","Buy":"يشتري","Buy Now":"اشتري الآن","bank name":"اسم البنك","city":"مدينة","Copy successful":"نسخ ناجحة","Copy failed":"فشل النسخة","Can Extract":"يمكن استخراج","Currency Type":"نوع العملة","Cancel":"إلغاء","Cancel the success":"إلغاء النجاح","Cancelled":"ألغيت","Choose a country":"اختر بلد","Choose Coupon":"اختر كوبون","Choose items":"اختر العناصر","Clear":"صافي","Clear Search":"مسح البحث","Comment Successful!":"التعليق ناجح!","Comment Failed!":"فشل التعليق!","Commission Details":"تفاصيل اللجنة","Commission":"عمولة","Commission Status":"حالة اللجنة","commodity payment":"دفع السلع","completed":"completed","Completed":"منجز","Condition not met":"الحالة لم تتحقق","Confirm":"يتأكد","Confirm password is inconsistent with new password":"تأكيد كلمة المرور غير متناسقة بكلمة مرور جديدة","Congratulations":"تهانينا","Congratulations! You are got a coupon.":"تهانينا! لديك قسيمة.","Congratulations! You are got all coupons.":"تهانينا! لديك كل كوبونات.","Continue":"استمر","Continue Shopping":"مواصلة التسوق","Copy the code and use it directly in the shopping cart.":"انسخ التعليمات البرمجية واستخدامها مباشرة في عربة التسوق.","Country":"بلد","Coupon code":"رمز الكوبون","Coupon List":"قائمة الكوبون","Date":"تاريخ","days after receiving":"أيام بعد استلامها","Design customization":"تصميم التخصيص","Do not use any discount":"لا تستخدم أي خصم","Earliest":"باكرا جدا","Export successful":"تصدير ناجح","Export failed":"فشل التصدير","email":"البريد الإلكتروني","email format does not match":"تنسيق البريد الإلكتروني غير متطابق","Estimated Delivery Time":"يقدر وقت التسليم","Effective Order Count":"عدد الطلبات الفعالة","Effective Sale Amount":"مبلغ البيع الفعال","Expense":"مصروف","expired":"منتهية الصلاحية","export a report?":"تصدير تقرير؟","Failed to upload files.":"Failed to upload files.","FAQ":"FAQ","Find Parts":"العثور على أجزاء","for order over":"للطلب أكثر من ذلك","Free":"حر","Free Quote & Information Request":"طلب اقتباس مجاني ومعلومات","Free Shipping":"الشحن مجانا","Get":"احصل على","Get coupons":"الحصول على كوبونات","Get discount":"الحصول على خصم","Get it":"احصل عليه","Get it after logging in and use it in the shopping cart.":"احصل عليه بعد تسجيل الدخول واستخدامها في عربة التسوق.","Go to Page":"انتقل إلى صفحة","Highest Price":"اغلى سعر","home":"الصفحة الرئيسية","Hot Sale":"عرض ساخن","Income":"دخل","Incorrect form format":"تنسيق شكل غير صحيح","inquiry":"استفسار","join guide":"دليل الانضمام","Last 30 days":"آخر 30 يومًا","Last 7 days":"اخر 7 ايام","Links report":"تقرير الروابط","Loading":"جار التحميل","Lowest Price":"أقل سعر","Match Product":"تطابق المنتج","Merchant Free Shipping":"التاجر شحن مجاني","message":"رسالة","Most Popular":"الأكثر شعبية","my account":"حسابي","my coupons":"كوبونات بلدي","my inquiry":"استفساري","my orders":"طلباتي","my reviews":"مشاريعي","my wishlist":"قائمة امنياتي","name":"اسم","New Arrival":"قادم جديد","Newest":"الأحدث","No Quotation":"لا اقتباس","No time limit":"لا يوجد حد زمني","Not deleted":"لم يتم حذفها","not valid yet":"غير صالح بعد","Off":"عن","Offers and Discounts":"العروض والخصومات","ok":"موافق","Only DOC,DOCX,PDF,PNG,JPEG and JPG files can be uploaded":"يمكن تحميل ملفات DOC و DOCX و PDF و PNG و JPEG و JPG فقط","optional":"اختياري","order notes":"ترتيب ملاحظات","Order over":"النظام","order id":"رقم التعريف الخاص بالطلب","order status":"حالة الطلب","order amount":"كمية الطلب","Orders Report":"تقرير الأوامر","Other":"آخر","Password contains at least numbers and letters length should be 6-20":"تحتوي كلمة المرور على الأرقام على الأقل ويجب أن يكون طول الحروف 6-20","Password is invalid":"كلمة المرور غير صالحة","Password length should be 6-20":"يجب أن يكون طول كلمة المرور 6-20","Paypal":"باي بال","paypal payment":"الدفع باي بال","Pending":"قيد الانتظار","Pending Commission":"اللجنة المعلقة","personal info":"معلومات شخصية","Please click ’click to continue’ to retry.":"يرجى النقر فوق \"انقر للمتابعة\" لإعادة المحاولة.","Please contact customer service for cash withdrawal":"يرجى الاتصال بخدمة العملاء للحصول على السحب النقدي","Please enter a valid email address":"يرجى إدخال عنوان بريد إلكتروني صالح","Please enter the verification code":"الرجاء إدخال رمز التحقق","Please login in first":"يرجى تسجيل الدخول أولا","Please select attribute":"يرجى اختيار السمة","Please select country/region":"يرجى اختيار البلد / المنطقة","Please select superior":"يرجى اختيار متفوقة","Please select the number of ratings.":"يرجى اختيار عدد التصنيفات.","Please select your country":"الرجاء تحديد بلدك","Please upload the invoice file":"يرجى تحميل ملف الفاتورة","Processing":"يعالج","Product Name":"اسم المنتج","Please fill in the delivery address before selecting the payment method":"يرجى ملء عنوان التسليم قبل اختيار طريقة الدفع","promotion center":"مركز الترويج","Promotion Link Click Amount":"رابط الترويج انقر فوق مبلغ","Promoted link clicks":"نقرات الارتباط التي تمت ترقيتها","Promotion Order Count":"عدد أوامر الترويج","Promotion Reports":"تقارير الترويج","read more":"اقرأ أكثر","Received commission":"تلقت عمولة","Refund":"استرداد","Refuse":"رفض","Region":"منطقة","Register Success":"سجل النجاح","Remittance":"التحويلات","Reviews":"المراجعات","reports":"تقارير","Sale ends in":"بيع ينتهي في","Save in wishlist":"حفظ في قائمة الأمنيات","Search":"بحث","swift code":"رمز السرعة","Select how to share":"حدد كيفية المشاركة","Select premium items to increase your chances of making money":"حدد العناصر المتميزة لزيادة فرصك في كسب المال","Share items to your channels.when other purchase a from your link, you can get commission.":"مشاركة العناصر إلى قنواتك. عند الشراء الآخر A من الرابط الخاص بك ، يمكنك الحصول على العمولة.","Share Product":"مشاركة المنتج","shipment successful":"شحنة ناجحة","Shipping":"الشحن","Shipping Address":"عنوان الشحن","Size guide":"دليل المقاسات","Small Text":"نص صغير","Small Title":"عنوان صغير","Sort By":"صنف حسب","Sales Amount":"مبلغ المبيعات","State/Province/Territory":"الدولة / المقاطعة / الإقليم","Successfully delete":"حذف بنجاح.","Successfully save":"حفظ بنجاح.","Thank you for trying":"شكرا على المحاولة","The account has been deactivated, please contact customer service to activate":"تم إلغاء تنشيط الحساب ، يرجى الاتصال بخدمة العملاء لتفعيلها","the content can not be blank":"المحتوى لا يمكن أن يكون فارغا","The coupon code has been copied and used in the shopping cart.":"تم نسخ رمز القسيمة وتستخدم في عربة التسوق.","The file name cannot exceed 100 characters":"لا يمكن أن يتجاوز اسم الملف 100 حرف","The file size cannot exceed 2MB":"لا يمكن أن يتجاوز حجم الملف 2 ميجابايت","The number of withdrawals on the day has been capped":"تم توج عدد عمليات السحب في اليوم","The subscription is successful, thank you for your participation":"الاشتراك ناجح، شكرا لك على مشاركتك","The user center is out of service. Please contact customer service":"مركز المستخدم خارج الخدمة. يرجى الاتصال بخدمة العملاء","There is no amount to withdraw":"لا يوجد مبلغ للانسحاب","There is no data to export":"لا توجد بيانات للتصدير","This is Text":"هذا هو النص","This is title":"هذا هو العنوان","This transaction has failed.":"فشلت هذه المعاملة.","Time to shop":"الوقت للتسوق","Tips":"نصائح","To be commented":"ليتم تعليقها","Total":"المجموع","Tutorial":"الدورة التعليمية","This Supplier/Shipping Company does not deliver to your selected Country/Region.":"لا تقدم هذه الشركة/شركة الشحن إلى بلدك/منطقتك المختارة.","Update password success":"تحديث نجاح كلمة المرور","Upload Image":"تحميل الصور","Upload up to 6 pictures":"تحميل ما يصل إلى 6 صور","uploading":"تحميل","used":"تستخدم","user center":"مركز المستخدم","Upload Invoice":"تحميل فاتورة","valid now":"صالح الآن","Validity period":"فترة الصلاحية","View Cart & Checkout":"عرض العربة","views":"الآراء","Valid for":"صالحة ل","Welcome to the website":"مرحبا بكم في الموقع","Western Union":"الاتحاد الغربي","When your buyers received and confirmed orders, you can get commission right now!":"عندما تلقى المشترين أوامر مؤكدة ، يمكنك الحصول على العمولة الآن!","Withdrawal":"انسحاب","Withdrawal success":"نجاح الانسحاب","Withdrawal Method":"طريقة السحب","Write a Review":"أكتب مراجعة","Withdrawal Amount":"كمية السحب","Yes":"نعم","Yesterday":"في الامس","You are clicking too fast":"أنت تنقر بسرعة كبيرة","You are got a coupon.":"لديك قسيمة.","You can select a maximum of 90 days":"يمكنك تحديد 90 يومًا كحد أقصى","You can withdraw the commission to your Paypal account.":"يمكنك سحب اللجنة إلى حساب PayPal الخاص بك.","You haven’t chosen an address yet":"لم تختار عنوان حتى الآن","You haven’t selected a product yet":"أنت لم تختار منتج حتى الآن","Your rating":"تقييمك","Your review":"مراجعتك","Your shipping address error":"خطأ عنوان الشحن الخاص بك"}}