آموزش Microcontroller Embedded C Programming: مبتدیان مطلق

Microcontroller Embedded C Programming: Absolute Beginners

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: دوره آموزشی برنامه نویسی جاسازی شده C با استفاده از میکروکنترلر STM32. برنامه نویسی 'C' از ابتدا انواع داده ها، متغیرها، اعلان ها، اهمیت عملگرهای Bit-Wise در برنامه نویسی "Embedded" تکنیک های دستکاری بیت با استفاده از عملگرهای bit-wise و مثال ها استخراج بیت و کار با رجیسترهای جانبی نگاشت شده با حافظه دیگر عملگرهای 'C' ( حسابی، منطقی، رابطه، انتساب ) توابع در 'C' ریخته گری ضمنی و صریح و اهمیت آن اشاره گرها و ریخته گری اشاره گرها حسابی و اهمیت انواع داده های اشاره گر دسترسی به ثبات های محیطی نگاشت حافظه با استفاده از اشاره گر ساختارها و اتحادیه ها اهمیت ساختارها در ثبات محیطی و دسترسی biStruct فیلدها پیکربندی آدرس‌های رجیستر محیطی با استفاده از فیلدهای بیتی ساختارها و نشانگرهای رابط LED، Const صفحه کلید و واجد شرایط نوع فرار اهمیت فرار در هنگام بهینه‌سازی کامپایلر داده‌های const، نشانگر const، cont فرار توضیح با مثال‌ها اهمیت حلقه‌های const: برای، while، do while پیشها : درک اولیه سیستم های اعداد، گیت های منطقی، بیت ها و بایت ها. اگر می‌خواهید کد روی هدف را امتحان کنید، برد اکتشاف STM32F407 لازم است

== این اولین دوره آموزشی شما برای شیرجه زدن به دنیای هیجان انگیز "سیستم های جاسازی شده" است. <==

این دوره جدید ما است که عمدتاً برای مبتدیان مطلق برای یادگیری برنامه نویسی میکروکنترلر با استفاده از زبان برنامه نویسی 'C' هدف گذاری شده است.

لطفاً توجه داشته باشید که "Embedded C" یک زبان برنامه نویسی جداگانه نیست. 'Embedded C' یک برنامه نویسی آگاه از هدف جاسازی شده با استفاده از زبان برنامه نویسی سنتی 'C' است.

برخی از مفاهیم مهم "C" مرتبط با میکروکنترلر مانند

  1. اهمیت عملگرهای بیتی

  2. استفاده از تکنیک های دستکاری بیت برای برنامه ریزی رجیسترهای محیطی MCU

  3. دسترسی به رجیسترهای دارای نقشه حافظه با استفاده از نشانگرها

  4. نشانگرها و ارسال محتوا

  5. ساختارها، فیلدهای بیتی، اتحادیه ها و تکنیک های استخراج بیت

  6. نمایش جزئیات ثبت‌های سخت‌افزار و پیکربندی آنها با استفاده از تعاریف ساختار "C"

  7. استفاده از واجد شرایط نوع const و volatile

  8. تفسیر تعاریف متغیر پیچیده شامل ترکیبی از const و volatile

  9. استفاده دقیق از نشانگرهای const، داده های const، ثبات فرار، با متغیرهای اشاره گر و غیر اشاره گر

  10. رفتار کد در حین بهینه سازی کامپایلر و حل با استفاده از فرار

  11. کارکردها و دوستان

  12. انواع داده، تعاریف متغیرها، مشخص‌کننده‌های کلاس ذخیره‌سازی و موارد دیگر

  13. حلقه ها: while, for, do. در حالی که

  14. معماری داخلی MCU و تجهیزات جانبی برنامه نویسی

  15. پروژه های واسط

همه این مفاهیم با مثال‌های واضح و نوشتن کد برای برد تعبیه‌شده هدف مورد بحث قرار می‌گیرند.

طبق نظرسنجی embedded dot com در سال 2017 هنوز هم "C" یکی از پرکاربردترین زبان های برنامه نویسی برای توسعه کدهای جاسازی شده است

این دوره تاکید خاصی بر یادگیری مفاهیم برنامه نویسی C به طور عملی برای موارد استفاده از میکروکنترلر دارد.


سخت افزار:

1. اگر می‌خواهید کد را روی هدف امتحان کنید، به برد STM32F407 DISCOVERY مبتنی بر ARM Cortex M4 از ST نیاز دارید.

2. ممکن است اجزای واسط اضافی برای پروژه های واسط

مورد نیاز باشد

3. همچنین در صورت داشتن تابلوهای دیگر از ST مانند Nucleo یا ارزیابی، می‌توانید این دوره را دنبال کنید.


نرم افزار:

1. در این دوره، از STM32CubeIDE مبتنی بر Eclipse به عنوان IDE استفاده می شود (روی Windows/Linux/Mac کار می کند) (رایگان)


ترتیب یادگیری دوره های FastBit Embedded Brain Academy،

اگر در زمینه سیستم‌های جاسازی شده مبتدی هستید، می‌توانید دوره‌های ما را به ترتیب ذکر شده در زیر بگذرانید.
این فقط یک توصیه از سوی مربی برای مبتدیان است.

1) برنامه نویسی جاسازی شده با میکروکنترلر C: مبتدیان مطلق (Embedded C)

2) برنامه نویسی سیستم های جاسازی شده در پردازنده ARM Cortex-M3/M4 (مخصوص پردازنده ARM Cortex M4)

3) تسلط بر میکروکنترلر با توسعه درایور جاسازی شده (MCU1)

4) تسلط بر میکروکنترلر: TIMERS، PWM، CAN، RTC، LOW POWER(MCU2)

5) تسلط بر میکروکنترلر: STM32-LTDC، LCD-TFT، LVGL (MCU3)

6) طراحی سیستم جاسازی شده با استفاده از ماشین‌های حالت UML (ماشین دولتی)

7) تسلط بر RTOS: FreeRTOS و STM32Fx عملی با اشکال زدایی (RTOS)

8) میکروکنترلر ARM Cortex M DMA Programming Demystified (DMA)

9) توسعه بوت لودر سفارشی میکروکنترلر STM32Fx (Bootloader)

10) لینوکس جاسازی شده گام به گام با استفاده از Beaglebone Black (Linux)

11) برنامه نویسی درایور دستگاه لینوکس با استفاده از Beaglebone Black (LDD1)


سرفصل ها و درس ها

معرفی Introduction

  • در مورد مربی About the instructor

  • زبان های برنامه نویسی برای سیستم های جاسازی شده Programming languages for Embedded Systems

  • تاریخچه C و استانداردسازی History of 'C' and standardization

  • مخزن دوره Course repository

  • یادداشت مهم Important Note

نصب IDE IDE installation

  • دانلود IDE Downloading IDE

  • دانلود IDE Downloading IDE

  • ویژگی های کلیدی STM32CubeIDE Key features of the STM32CubeIDE

  • در حال نصب STM32CubeIDE Installing STM32CubeIDE

  • نصب STM32CubeIDE در لینوکس Installing STM32CubeIDE on Linux

  • نصب کامپایلر (GCC) برای میزبان Installing compiler (GCC) for host

  • نصب کامپایلر (GCC) برای میزبان (WINDOWS) Installing compiler (GCC) for host (WINDOWS)

  • نصب کامپایلر (GCC) برای میزبان (LINUX) Installing compiler (GCC) for host (LINUX)

  • نصب کامپایلر (GCC) برای میزبان (MAC) Installing compiler (GCC) for host (MAC)

  • وارد کردن پروژه های دوره به فضای کاری Importing course projects in to workspace

  • ایجاد پروژه برای HOST Creating a project for the HOST

  • ایجاد یک پروژه برای هدف Creating a project for the Target

  • رفع هشدار FPU FPU warning fix

  • سخت افزار/نرم افزار مورد نیاز Hardware/Software Requirements

  • هدف تعبیه شده این دوره را برآورده کنید Meet the embedded target of this course

اولین برنامه "C" شما Your first 'C' program

  • ابزار وب OnlineGDB OnlineGDB web tool

  • Printf و Hello World Printf and Hello World

  • راه حل تمرین Printf Printf exercise solution

  • دنباله‌های فرار در «C» Escape sequences in 'C'

  • راه حل تمرین Printf Printf exercise solution

  • راه حل تمرین Printf Printf exercise solution

  • اظهار نظر در "C" Commenting in 'C'

انواع داده ها و متغیرها Data types and variables

  • انواع داده در "C" Data types in 'C'

  • «C» انواع داده های عدد صحیح و محدوده مقدار 'C' Integer data types and value ranges

  • نوع داده Char و تعریف متغیر Char data type and variable definition

  • تمرین تعریف متغیر Variable definition exercise

  • محاسبه محدوده برای نوع داده "char". Range calculation for 'char' data type

  • نوع داده عدد صحیح "int کوتاه" و محدوده مقدار Integer data type 'short int' and value range

  • نوع داده عدد صحیح 'int' و 'long' Integer data type 'int' and 'long'

  • Sizeof Sizeof

  • قوانین نامگذاری متغیرها و تعریف در مقابل اعلان Variables naming rules and definition vs declaration

  • اعلان در مقابل تعریف: یک تصویر Declaration vs definition : An illustration

  • دامنه و تصویر متغیرها Variables scope and illustration

  • دامنه متغیرها و تصویر ادامه Variables scope and illustration contd

  • خلاصه ای از متغیرهای محلی و جهانی Summary of local and global variables

آدرس متغیر Address of variable

  • آدرس متغیرها Address of variables

  • آدرس متغیرها ادامه Address of variables contd.

کلاس های ذخیره سازی Storage classes

  • مشخص‌کننده‌های کلاس ذخیره‌سازی در «C» Storage class specifiers in 'C'

  • از موارد "استاتیک" با متغیرها استفاده کنید Use cases of 'static' with variables

  • از موارد "استاتیک" با توابع استفاده کنید Use cases of 'static' with functions

  • مشخص کننده کلاس ذخیره سازی "خارجی". 'Extern' storage class specifier

  • کدهای اسکی ASCII codes

کارکرد functions

  • معرفی توابع در C Introduction to functions in 'C'

  • نمونه های اولیه عملکردی Function prototypes

  • برگرداندن داده ها از یک تابع Returning data from a function

  • تمرین عملکردی Function exercise

  • تایپ کست در "C" Typecasting in 'C'

  • Typecasting در 'C' contd Typecasting in 'C' contd

میکروکنترلر و Hello World Microcontroller and Hello World

  • تعبیه شده - "سلام جهان" Embedded - 'Hello World'

  • تست printf روی خط ARM Cortex M4 ITM+SWO Testing printf over ARM Cortex M4 ITM+SWO line

  • مشکلات با IDE Issues with IDE

  • تست printf روی نیمه هاست OpenOCD Testing printf over OpenOCD semihosting

  • Sizeof را روی Embedded Target اجرا کنید Run Sizeof on Embedded Target

  • اندازه گیری تست Sizeof testing

  • تنظیمات کامپایلر در STM32CubeIDE Compiler settings on STM32CubeIDE

فرآیند ساخت Build process

  • فرآیند ساخت پروژه تعبیه شده Embedded project build process

تجزیه و تحلیل کد جاسازی شده C Analyzing Embedded C code

  • میکروکنترلر چیست؟ What is a Microcontroller ?

  • حافظه کد میکروکنترلر Code memory of the microcontroller

  • کد و داده های برنامه با استفاده از مرورگر حافظه Code and Data of the program using memory browser

  • تجزیه و تحلیل فایل ELF با استفاده از ابزار گنو Analyzing ELF file using GNU tools

  • جداسازی قطعات Disassembly

  • گزینه IDE برای اشکال زدایی سطح دستورالعمل IDE option for Instruction level debugging

انواع داده برای دستکاری داده های ممیز شناور Data types to manipulate floating point data

  • دستکاری اعداد اعشاری در "C" Manipulating decimal numbers in 'C'

  • تک در مقابل دقت دوگانه Single vs double precision

  • کار با متغیرهای float و double Working with float and double variables

گرفتن ورودی از کاربر با استفاده از scanf() Taking input from the user using scanf()

  • معرفی Scanf Scanf introduction

  • اجرای تمرین Scanf Scanf exercise implementation

  • اجرای تمرین Scanf ادامه دارد. Scanf exercise implementation contd.

  • ورزش Scanf Scanf exercise

  • اجرای تمرین Scanf Scanf exercise implementation

  • اسکن و شناور با نماد علمی Scanf and float with scientific notation

اشاره گرها Pointers

  • اشاره گر در "C" Pointers in 'C'

  • متغیرهای اشاره گر و انواع داده های اشاره گر Pointer variables and pointer data types

  • متغیرهای اشاره گر و مقداردهی اولیه Pointer variables and initialization

  • عملیات خواندن و نوشتن روی اشاره گرها Read and Write operation on pointers

  • اجرای تمرین اشاره گر Pointer exercise implementation

  • اهمیت انواع داده های اشاره گر Significance of pointer data types

  • اهمیت انواع داده های اشاره گر Significance of pointer data types

اهمیت <stdint.h> Importance of <stdint.h>

  • اهمیت <stdint.h> Importance of <stdint.h>

اپراتورها Operators

  • اپراتورها در "C" Operators in 'C'

  • عملگر Unary در 'C' Unary operator in 'C'

  • عملگرهای Unary با اشاره گر Unary operators with pointers

  • عملگرهای رابطه ای در 'C' Relational operators in 'C'

  • عملگرهای منطقی در 'C' Logical operators in 'C'

تصمیم گیری decision making

  • بیانیه "اگر". 'if' statement

  • اگر تمرین بیانیه if statement exercise

  • راه حل تمرین عبارت «اگر». 'if' statement exercise solution

  • "اگر" و "دیگر" 'if' and 'else'

  • اجرای تمرین "اگر" و "دیگر" قسمت 1 'if' and 'else' exercise implementation part-1

  • اجرای تمرین "اگر" و "دیگر" قسمت 2 'if' and 'else' exercise implementation part-2

  • اجرای تمرین "اگر" و "دیگر" قسمت 3 'if' and 'else' exercise implementation part-3

  • بیانیه های نردبان "if -else-if". 'if -else-if' ladder statements

  • تمرین نردبانی «اگر-دیگر-اگر». 'if-else-if' ladder exercise

  • راه حل تمرین نردبانی «اگر-دیگر-اگر». 'if-else-if' ladder exercise solution

  • اپراتور مشروط Conditional operator

  • عبارت switch case در "C" switch case statement in 'C'

  • تمرین سوئیچ کیس switch case exercise

  • راه حل تمرین مورد سوئیچ switch case exercise solution

  • سوئیچ مورد راه حل تمرین ادامه. switch case exercise solution contd.

عملگرهای بیتی Bitwise operators

  • عملگرهای بیتی در 'C' Bitwise operators in 'C'

  • بیتی AND و بیتی OR Bitwise AND and bitwise OR

  • کاربرد عملگرهای بیتی: تست بیت ها Applicability of bitwise operators : Testing of bits

  • پیدا کردن یک عدد زوج یا فرد با استفاده از تست بیت ها Finding a number even or odd using testing of bits

  • کاربرد عملگرهای بیتی: تنظیم بیت ها Applicability of bitwise operators : Setting of bits

  • کاربرد عملگرهای بیتی: پاکسازی بیت ها Applicability of bitwise operators : Clearing of bits

  • کاربرد عملگرهای بیتی: xor Applicability of bitwise operators : xor

تمرین کدگذاری C تعبیه شده برای LED Embedded C coding exercise for LED

  • کدگذاری برای روشن کردن LED Coding to Turn on an LED

  • کنترل پین IO با استفاده از نرم افزار Controlling IO pin using software

  • مناطق حافظه قابل آدرس دهی پردازنده Processor addressable memory regions

  • نقشه حافظه STM32 STM32 memory map

  • رجیسترهای جانبی نگاشت حافظه و دسترسی به IO Memory mapped peripheral registers and IO access

  • رویه روشن کردن LED را انجام دهید Procedure to turn ON the LED

  • فعال کردن ساعت محیطی Enabling peripheral clock

  • محاسبه آدرس های رجیستر محیطی Calculating peripheral register addresses

  • کدگذاری تمرین LED ON LED ON exercise coding

عملگرهای شیفت بیتی Bitwise shift operators

  • عملگر شیفت راست بیتی Bitwise right shift operator

  • عملگر شیفت چپ به صورت بیتی Bitwise left shift operator

  • کاربرد عملگرهای شیفت بیتی Applicability of bitwise shift operators

  • اصلاح LED در تمرین با استفاده از عملگرهای شیفت بیتی Modifying LED on exercise using bitwise shift operators

  • استخراج بیت Bit Extraction

حلقه زدن Looping

  • حلقه زدن در "C" Looping in 'C'

  • در حالی که حلقه While loop

  • در حالی که ورزش حلقه while loop exercise

  • در حالی که حلقه و نقطه ویرگول while loop and semicolon

  • در حالی که ورزش حلقه while loop exercise

  • حلقه "do while". 'do while' loop

  • حلقه "برای". 'for' loop

  • تمرین حلقه "for". 'for' loop exercise

  • تمرین هرم شماره حلقه "for". 'for' loop number pyramid exercise

  • راه حل تمرین حلقه "for". 'for' loop exercise solution

  • روشن شدن LED با تاخیر نرم افزاری modifying LED on with software delay

  • تعویض LED با استفاده از تاخیر نرم افزاری LED toggle using software delay

واجد شرایط "const" را تایپ کنید Type qualifier 'const'

  • واجد شرایط نوع 'const' 'const' type qualifier

  • قرار دادن متغیرهای 'const' در حافظه placements of 'const' variables in memory

  • استفاده از 'const' و مطالعات موردی مختلف 'const' usage and different case studies

  • استفاده از 'const' و مطالعات موردی مختلف ادامه دارد 'const' usage and different case studies contd

پین خواندن Pin-read

  • تمرین خواندن پین IO IO pin read exercise

  • اجرای تمرین خواندن پین IO IO pin read exercise implementation

بهينه سازي Optimization

  • بهینه سازی کامپایلر و پرچم Compiler optimization and flags

  • سطوح مختلف بهینه سازی کامپایلر Different compiler optimization levels

  • تجزیه و تحلیل جداسازی تمرین خواندن پین با O0 و O2 Analyzing pin read exercise disassembly with O0 and O2

واجد شرایط نوع 'فرار' 'volatile' type qualifier

  • فرار و اثر بهینه سازی volatile and effect of optimization

  • چه زمانی از واجد شرایط فرار استفاده کنیم؟ When to use volatile qualifier ?

  • استفاده از فرار برای رفع مشکلات تمرین پین‌خوانی Using volatile to fix issues with the pin-read exercise

  • استفاده از "فرار" با ISR Part-1 Using 'volatile' with ISR Part-1

  • استفاده از "فرار" با ISR Part-2 Using 'volatile' with ISR Part-2

  • استفاده از const و volatile با هم Usage of const and volatile together

ساختارها و فیلدهای بیتی Structures and Bit fields

  • مقدمه ای بر سازه ها Introduction to structures

  • دسترسی به عناصر عضو ساختار Accessing structure member elements

  • اندازه یک سازه Sizeof of a structure

  • ذخیره‌سازی داده‌های هم‌تراز و بدون تراز Aligned and un-aligned data storage

  • بالشتک سازه Structure padding

  • محاسبه اندازه ساختار به صورت دستی با و بدون بالشتک Calculating structure size manually with and without padding

  • تجزیه و تحلیل کد اسمبلی ساختار بسته بندی شده و غیر بسته بندی شده Assembly code analysis of packed and non packed structure

  • Typedef و ساختار Typedef and structure

  • ساختارها و اشاره گرها Structures and pointers

  • تمرین ساختار Structure exercise

  • اجرای تمرین ساختاری Structure exercise implementation

  • فیلدهای ساختار و بیت Structure and bit fields

  • ساختار و فیلدهای بیت ادامه. Structure and bit fields contd.

اتحادیه ها Unions

  • اتحادیه ها Unions

  • قابل اجرا بودن اتحادیه ها Applicability of unions

استفاده از فیلدهای بیت در کدهای تعبیه شده Usage of bit-fields in embedded code

  • تمرین میدان بیت: ایجاد ساختار میدان بیت برای رجیسترهای محیطی Bit-field exercise : Creating bit-field structure for peripheral registers

  • ساختار میدان بیتی برای RCC_AHB1ENR Bit-field structure for RCC_AHB1ENR

  • ساختار میدان بیت برای GPIOx_ODR Bit-field structure for GPIOx_ODR

  • اصلاح تمرین ضامن رهبری با ساختارها و فیلدهای بیتی Modifying led toggle exercise with structures and bit fields

  • آزمایش کردن Testing

رابط صفحه کلید Keypad interfacing

  • رابط صفحه کلید Keypad interfacing

  • چرا مقاومت های کششی؟ Why pull-up resistors?

  • تشخیص رویداد فشار کلید Detecting key press event

  • نمودار جریان برای پیاده سازی Flow chart for implementation

  • اجرای کد خواندن کلید صفحه کلید Keypad key read code implementation

  • تحلیل تاخیری Delay analysis

آرایه ها Arrays

  • آرایه ها در "C" Arrays in 'C'

  • عملیات خواندن و نوشتن در یک آرایه Read-Write operation on an array

  • ارسال آرایه به یک تابع Passing array to a function

  • تعویض آرایه ها Swapping of arrays

  • تعویض آرایه ها ادامه دارد. Swapping of arrays contd.

رشته های Strings

  • رشته ها در "C" Strings in 'C'

  • رشته به معنای واقعی کلمه String literal

  • متغیر رشته در مقابل رشته تحت اللفظی String variable Vs string literal

  • وارد کردن یک رشته Inputting a string

  • اسکن و اسکن ست Scanf and scanset

  • ورزش Exercise

دستورالعمل های پیش پردازشگر در 'C' Pre-Processor directives in 'C'

  • دستورالعمل های پیش پردازشگر در 'C' Pre-Processor directives in 'C'

  • دستورالعمل های تدوین مشروط Conditional compilation directives

  • اپراتور "تعریف شده". 'defined' operator

  • اصلاح تمرین ضامن رهبری با ماکروها Modifying led toggle exercise with macros

  • سخنرانی جایزه BONUS LECTURE

نمایش نظرات

نظری ارسال نشده است.

آموزش Microcontroller Embedded C Programming: مبتدیان مطلق
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
16.5 hours
194
Udemy (یودمی) udemy-small
14 فروردین 1402 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
34,174
4.5 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

FastBit Embedded Brain Academy FastBit Embedded Brain Academy

روی Firmware و Embedded Engineering کار می کند

Kiran Nayak Kiran Nayak

نرم افزار تعبیه شده

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.