mBedLab Learning – Telegram
mBedLab Learning
779 subscribers
58 photos
5 videos
4 files
39 links
بحث و گفتگو در:
.
@mBedLab_Discussion
Download Telegram
mBedLab Learning
راه اندازی آسان مدار با باتری لیتیوم یون/پلیمر با استفاده از PMIC استفاده از باتری های لیتیوم یون/پلیمر در مدارهای الکترونیکی به دلیل چگالی انرژی بالا و طول عمر طولانی، به طور فزاینده ای محبوب شده است. با این حال، به دلیل نوسانات ولتاژ، نیاز به شارژ و حفاظت…
راه اندازی آسان مدار با باتری لیتیوم یون/پلیمر با استفاده از #MP2636

در ادامه پست قبل...

در این آموزش، به شما نشان خواهیم داد که چگونه با استفاده از MP2636، یک PMIC (مدار مدیریت قدرت یکپارچه)، به سادگی مدار خود را با باتری لیتیوم یون/پلیمر راه اندازی کنید.

مزایای استفاده از MP2636
استفاده از MP2636 در مقایسه با روش های سنتی راه اندازی مدار با باتری لیتیوم یون/پلیمر مزایای متعددی دارد، از جمله:
○ سادگی
‏MP2636 یک مدار کامل است که نیاز به طراحی مدارهای پیچیده و استفاده از چندین IC مجزا را از بین می برد.

○ کاهش هزینه
‏MP2636 می تواند به کاهش هزینه کلی BOM (لیست مواد) پروژه شما کمک کند.

○ افزایش کارایی
‏MP2636 به گونه ای طراحی شده است که حداکثر کارایی را برای مدار شما ارائه دهد.

○ افزایش ایمنی
‏MP2636 دارای ویژگی های حفاظتی داخلی است که از باتری و مدار شما در برابر آسیب محافظت می کند.


ادامه در پست بعد...

#الکترونیک #آموزشی #قطعات_کاربردی #شارژ_باتری #مدیریت_باتری

📍به کانال ما بپیوندید:
@mBedLabLearning
👍8
در ادامه پست قبل...

ویژگی های #MP2636
‏MP2636 دارای ویژگی های زیر است:
○ شارژر باتری لیتیوم یون/پلیمر تک سلولی
○ جریان شارژ قابل تنظیم تا 3.0A
○ ولتاژ شارژ قابل تنظیم
○ حفاظت در برابر شارژ بیش از حد، تخلیه بیش از حد، دمای بالا و اتصال کوتاه
○ نشانگر وضعیت LED
○ رابط I2C برای پیکربندی

مراحل راه اندازی
○‏ باتری لیتیوم یون/پلیمر را به ترمینال های BAT+ و BAT- کانکتور BAT مدار MP2636 وصل کنید.
○ خروجی MP2636 را به ورودی تغذیه مدار خود وصل کنید.
○ مقادیر مقاومت های R1، R2، R3 و R4 را برای تنظیم جریان شارژ، ولتاژ شارژ و سایر پارامترهای مورد نظر خود تنظیم کنید.
○ (اختیاری) رابط I2C را برای پیکربندی بیشتر MP2636 استفاده کنید.

نکات

○ قبل از استفاده از MP2636، حتما دیتاشیت آن را مطالعه کنید.
○ از باتری لیتیوم یون/پلیمر با کیفیت بالا استفاده کنید.
○ هنگام کار با باتری های لیتیوم یون/پلیمر، احتیاط کنید.

#الکترونیک #آموزشی #قطعات_کاربردی #شارژ_باتری #مدیریت_باتری

📍به کانال ما بپیوندید:
@mBedLabLearning
👍3
mBedLab Altium Library (2024-09-01).zip
102.7 MB
#کتابخانه مجموعه mBedLab برای #Altium_Designer آپدیت شد!

دیگر لازم نیست نگران پیدا کردن فوتپرینت قطعات الکترونیک باشید. این کتابخانه جامع با هزاران قطعه TH و SMD، طراحی مدارهای شما رو بسیار راحت‌تر می‌کند.

از امروز با آخرین آپدیت (2024/09/01)، به دنیای وسیعی از قطعات دسترسی پیدا کنید.

نکته: فایل فشرده بوده و باید استخراج شود

#الکترونیک #کتابخانه #قطعات_کاربردی #آلتیوم_دیزاینر

📍به کانال ما بپیوندید:
@mBedLabLearning
👍82🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
به دنیای برنامه نویسی، الکترونیک و مکاترونیک خوش آمدید!

با امبدلب، رایگان و از صفر برنامه‌نویسی، الکترونیک و مکاترونیک را یاد بگیر!

○ مباحث متنوع: #آردوینو، #آلتیوم_دیزاینر، #میکروکنترلر و...
○ آموزش‌های تعاملی: ویدیو، مثال عملی، پروژه
○ مباحث پایه تا تخصصی
○ مسابقه و هدایا

همین حالا به ما بپیوندید!

ورود به کانال آموزشی

#امبدلب #برنامه_نویسی #الکترونیک #مکاترونیک #آموزش_رایگان

📍به کانال ما بپیوندید:
@mBedLabLearning

📍به اینستاگرام ما بپیوندید:
https://www.instagram.com/mbedlab
👍7🔥21
افتخار آفرینی مهندسان ایرانی در عرصه جهانی رباتیک!

دوستان عزیز و علاقه‌مندان به دنیای رباتیک، با خوشحالی فراوان به اطلاع شما می‌رسانیم که نمایندگان تیم مهندسی "امبد لب" پس از داوری موفق و درخشش در مسابقات نوآوری و کسب و کار المپیک فناوری ۲۰۲۴ در پارک علم و فناوری پردیس، به عنوان داوران رسمی مسابقات جهانی رباتیک ۲۰۲۴ اوراسیا در ترکیه دعوت شده‌اند.

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

امیدواریم بتوانیم با این افتخار، نام ایران را در زمره پیشگامان عرصه رباتیک جهان قرار دهیم.

از شما عزیزان دعوت می‌کنیم تا با حمایت‌های معنوی خود، ما را در این مسیر مهم یاری نمایید.

با سپاس فراوان
گروه مهندسی "امبد لب"

#الکترونیک #رباتیک #مسابقات_اوراسیا

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
12👍6
سلام خدمت همراهان گرامی

به درخواست شما عزیزان، به‌زودی نسخه جدید کتابخانه آلتیوم مجموعه رو با قطعات جدید و بهبود یافته منتشر می‌کنیم!

اگر قطعه خاصی مدنظرتونه که تو کتابخانه باشه یا پیشنهادی برای بهبودش دارید، حتماً با ما در میون بذارید.

نظرات و پیشنهادات شما، راهنمای ما برای ارائه یه کتابخانه بی‌نقص و کاربردیه.

شما می‌تونید از طریق آی دی @mBedLab_Admin با ما در ارتباط باشید.

منتظر نظراتتون هستیم!

#الکترونیک #کتابخانه #قطعات_کاربردی #آلتیوم_دیزاینر

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
6
آیا با #استاندارد MISRA C آشنا هستید؟

استاندارد MISRA C مجموعه‌ای از دستورالعمل‌ها برای برنامه‌نویسی به زبان C، به‌ویژه در سیستم‌های حیاتی و حساس است. این استاندارد به ما کمک می‌کند کدی بنویسیم که:

ایمن‌تر باشد (جلوگیری از باگ‌ها و خطاهای خطرناک)
قابل‌اطمینان‌تر باشد (کاهش احتمال خرابی و عملکرد نامناسب)
قابل‌حمل‌تر باشد (اجرا بر روی سیستم‌های مختلف)
خواناتر و قابل‌نگهداری‌تر باشد (درک و تغییر آسان‌تر کد)

چرا MISRA C مهم است؟
در سیستم‌هایی که ایمنی و پایداری بسیار مهم است (مانند خودروها، تجهیزات پزشکی، سیستم‌های هوافضا و...) استفاده از این استاندارد تقریباً ضروری است. MISRA C با ارائه قوانین و راهنماها، از بروز خطاهای رایج برنامه‌نویسی جلوگیری می‌کند و کیفیت نرم‌افزار را بهبود می‌بخشد.

کجا بیشتر بدانیم؟
اگر دوست دارید بیشتر درباره MISRA C بدانید، می‌توانید عضو ما شوید.

#برنامه_نویسی #استاندارد_MISRA

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍10🤩3
#قانون 1.1 MISRA C - یک محیط استاندارد C

○ گروه: #محیط_استاندارد_C
○ دسته‌بندی: #الزامی
○ اعمال برای: C90, C99, C11

امروز می‌خوایم در مورد یکی از مهم‌ترین قوانین MISRA C صحبت کنیم: قانون 1.1. این قانون به طور خلاصه میگه که کدی که می‌نویسیم باید کاملاً با قواعد و محدودیت‌های تعریف شده در استاندارد C (نسخه انتخابی) سازگار باشه.

چرا این قانون مهمه؟

قابلیت حمل: کدی که از استاندارد C پیروی می‌کنه، به احتمال زیاد روی کامپایلرهای مختلف و سیستم‌عامل‌های گوناگون به درستی اجرا میشه.
○ پیشگیری از خطا: رعایت قواعد استاندارد، از بروز بسیاری از خطاهای رایج برنامه‌نویسی جلوگیری می‌کنه.
○ قابلیت نگهداری: کدی که استاندارد باشه، خواناتر و قابل فهم‌تره و نگهداری و توسعه اون آسون‌تره.

قانون 1.1 چی میگه؟
این قانون سه نکته اصلی رو شامل میشه:

1. عدم تخطی از قواعد نحوی و معنایی C
کد نباید هیچگونه تخطی از قواعد نگارشی (syntax) و محدودیت‌های (constraints) تعریف شده در استاندارد C داشته باشه.

2. عدم تجاوز از محدودیت‌های پیاده‌سازی
کامپایلرها محدودیت‌هایی برای ترجمه کد دارن (مثل طول نام متغیرها یا عمق توابع). کد نباید از این محدودیت‌ها تجاوز کنه.

3. مجاز بودن افزونه‌های زبان
استفاده از افزونه‌های خاص کامپایلرها (language extensions) مجازه، به شرطی که مستند شده باشن و در طراحی پروژه توجیه شده باشن. برای مثال، کلماتی مثل inline یا مشخص‌کننده‌های مکان حافظه مثل zpage، near و far__ که در سیستم‌های embedded رایج هستند، از این دسته‌اند.

نکات مهم:
○ کامپایلرها موظفند برای تخطی از قواعد و محدودیت‌ها، پیام خطا یا هشدار (warning) تولید کنن. اما این به معنی توقف حتمی کامپایل نیست.
○ تجاوز از محدودیت‌های پیاده‌سازی ممکنه باعث تولید خروجی اجرایی بشه، اما اجرای صحیح اون تضمین‌شده نیست.

#برنامه_نویسی #استاندارد_MISRA

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍11🤩2🔥1👏1
#قانون 1.2 MISRA C - از افزونه‌های زبان C استفاده نکنیم!

○ گروه: #محیط_استاندارد_C
○ دسته‌بندی: #توصیه_شده
○ اعمال برای: C90, C99, C11

یکی از نکات مهم در برنامه‌نویسی به زبان C، پرهیز از استفاده از افزونه‌های (Extensions) خاص کامپایلرهاست. چرا؟

برنامه‌ای که به این افزونه‌ها وابسته باشد، ممکن است به راحتی روی کامپایلرهای مختلف یا سیستم‌عامل‌های گوناگون اجرا نشود (مشکل Portable بودن). استاندارد زبان C از کامپایلرها می‌خواهد که افزونه‌های خود را مستند کنند، اما این مستندات همیشه کامل نیستند و ممکن است رفتار افزونه در شرایط خاص را به طور دقیق شرح ندهند.

راه حل:
○ تا حد امکان از افزونه‌ها استفاده نکنید.
○ اگر مجبور به استفاده از افزونه‌ای هستید، دلیل آن را در مستندات پروژه خود ذکر کنید.
○ نحوه اطمینان از استفاده صحیح افزونه (مثلاً بررسی کامپایلر و پیام‌های خطا) را نیز مستند کنید.


نکته مهم: در سیستم‌های #Embedded (نهفته)، استفاده از افزونه‌ها گاهی ضروری است. اما دقت کنید که افزونه نباید رفتار برنامه‌های استاندارد C را تغییر دهد. برای مثال، اگر کامپایلری، ارزیابی کامل عملگرهای منطقی (مثل && و ||) را به عنوان یک افزونه پیاده‌سازی کند (در حالی که استاندارد C می‌گوید ارزیابی به محض مشخص شدن نتیجه متوقف شود)، این افزونه با استاندارد سازگار نیست، زیرا ممکن است باعث بروز اثر جانبی (Side Effect) های ناخواسته شود.

#برنامه_نویسی#استاندارد_MISRA
#Embedded

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍8👌1
Media is too big
VIEW IN TELEGRAM
#یادگیری_ماشین چیست؟

یادگیری ماشین (ML) به برخی از مهم‌ترین فناوری‌هایی که ما استفاده می‌کنیم، از برنامه‌های ترجمه گرفته تا وسایل نقلیه خودران، قدرت می‌دهد. آموزش‌های ما در این کانال مفاهیم اصلی ML را توضیح و #آموزش می دهد.

‏ML راه جدیدی برای حل مشکلات، پاسخ به سوالات پیچیده و ایجاد محتوای جدید ارائه می دهد. ML می‌تواند آب و هوا را پیش‌بینی کند، زمان سفر را تخمین بزند، آهنگ‌ها را توصیه کند، جملات را به‌طور خودکار تکمیل کند، مقالات را خلاصه کند و تصاویری که قبلاً دیده نشده‌اند تولید کند.

در اصطلاح اولیه، ML فرآیند آموزش یک نرم‌افزار است که مدل نامیده می‌شود تا پیش‌بینی‌های مفید یا تولید محتوا از داده‌ها را انجام دهد.

به عنوان مثال، فرض کنید می‌خواهیم اپلیکیشنی برای پیش‌بینی بارندگی ایجاد کنیم، در اینصورت ما می توانیم از یک رویکرد سنتی یا یک رویکرد ML استفاده کنیم:

1. با استفاده از یک رویکرد سنتی، ما یک نمایش مبتنی بر فیزیک از جو و سطح زمین ایجاد می‌کنیم و مقادیر زیادی معادلات دینامیک سیالات را محاسبه می‌کنیم که کار بسیار دشواری است.

2. با استفاده از رویکرد ML، ما به مدل ML مقادیر زیادی داده آب و هوا می دهیم تا زمانی که مدل ML در نهایت رابطه ریاضی بین الگوهای آب و هوایی را که مقادیر متفاوتی از باران تولید می کنند را یاد بگیرد . سپس داده های آب و هوای فعلی را به مدل می دهیم و مقدار باران را پیش بینی می کند.

انواع سیستم های ML
سیستم های ML بر اساس نحوه یادگیری پیش بینی یا تولید محتوا در یک یا چند دسته از دسته های زیر قرار می گیرند:
یادگیری تحت نظارت
○ یادگیری بدون نظارت
○ یادگیری تقویتی
○ هوش مصنوعی مولد

#برنامه_نویسی #یادگیری_ماشین

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
🤩2
#قانون 1.3 MISRA C - از رفتارهای تعریف‌نشده و نامشخص در C دوری کنیم!

○ گروه: #محیط_استاندارد_C
○ دسته‌بندی: #الزامی
○ اعمال برای: C90, C99, C11

یکی از مهم‌ترین قوانین در برنامه‌نویسی C، به‌خصوص در سیستم‌های حساس، پرهیز از رفتارهای «تعریف‌نشده» (Undefined Behavior) و «نامشخص» (Unspecified Behavior) است. استاندارد MISRA C هم بر این موضوع تأکید ویژه‌ای دارد.

رفتار تعریف‌نشده یعنی چی؟
رفتار تعریف‌نشده به وضعیتی در کد گفته می‌شه که استاندارد زبان C هیچ تضمینی برای نحوه عملکرد برنامه در اون حالت نمی‌ده. این یعنی کامپایلرها می‌تونن هر کاری انجام بدن، از کرش کردن برنامه گرفته تا تولید نتایج عجیب و غیرقابل پیش‌بینی. این اتفاقات ممکنه باعث بروز مشکلات جدی در سیستم‌های حیاتی بشه.


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


چرا این موضوع مهمه؟
فرض کنید برنامه‌ای نوشتید که در شرایط خاصی، دچار رفتار تعریف‌نشده می‌شه. این برنامه ممکنه روی سیستم شما به درستی کار کنه، اما روی یه سیستم دیگه یا حتی با یه کامپایلر دیگه، رفتاری کاملاً متفاوت و غیرمنتظره داشته باشه. این موضوع می‌تونه منجر به باگ‌های پنهان و مشکلات امنیتی جدی بشه.

MISRA C چی میگه؟
قانون 1.3 استاندارد MISRA C به طور خاص از وقوع هرگونه رفتار تعریف‌نشده و رفتارهای نامشخص «بحرانی» جلوگیری می‌کنه. این استاندارد یه لیست از این رفتارها رو در ضمیمه H خودش آورده و مشخص کرده که کدوم قوانین MISRA C از بروز هر کدوم جلوگیری می‌کنن.

یه مثال ساده:
دسترسی به عنصری خارج از محدوده یک آرایه، یه نمونه از رفتار تعریف‌نشده است.

#برنامه_نویسی#استاندارد_MISRA
#Embedded

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
👍4
Media is too big
VIEW IN TELEGRAM
#هوش_مصنوعی #یادگیری_ماشین

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

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

دو مورد از رایج ترین موارد استفاده برای یادگیری تحت نظارت، رگرسیون و طبقه بندی هستند.

1. رگرسیون
یک مدل رگرسیون یک مقدار عددی را پیش بینی می کند. به عنوان مثال، یک مدل آب و هوا که میزان بارندگی را بر حسب اینچ یا میلی متر پیش بینی می کند، یک مدل رگرسیونی است.

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

مدل های طبقه بندی به دو گروه تقسیم می شوند:
○ طبقه بندی باینری
مدل‌های طبقه‌بندی باینری مقداری را از کلاسی که فقط شامل دو مقدار است، خروجی می‌دهد، برای مثال، مدلی که خروجی rain یا no rain را دارد.


○ طبقه بندی چند طبقه
مدل‌های طبقه‌بندی چند کلاسه مقداری را از کلاسی که بیش از دو مقدار دارد، خروجی می‌دهد، برای مثال، مدلی که می‌تواند rain ، hail ، snow یا sleet را خروجی دهد.


#برنامه_نویسی #یادگیری_ماشین #هوش_مصنوعی

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
2
برنامه زمانبندی و دسته بندی مطالب:
#برنامه_نویسی
#الکترونیک
#مکاترونیک
#رباتیک
#یادگیری_ماشین (یکشنبه ها و سه شنبه ها)
#استاندارد_MISRA (یکشنبه ها و سه شنبه ها)

چند نکته مهم:
- مطالب کانال با #هشتگ مناسب منتشر خواهد شد
- استفاده از محتوای این کانال کاملا رایگان بوده و انتشار آن با ذکر منبع بلامانع است

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
8👍2
🔈 معرفی و دانلود نرم‌افزار STM32CubeIDE

- نسخه: 1.17.0
- سیستم عامل: ویندوز

همانطور که میدانید نرم‌افزار قدرتمند STM32CubeIDE، یه محیط توسعه یکپارچه و چندسکویی (Multi-OS) برای توسعه برنامه‌های میکروکنترلرها و میکروپروسسورهای STM32 هست که به صورت رایگان ارائه شده. این نرم‌افزار، بخشی از اکوسیستم نرم‌افزاری STM32Cube محسوب میشود.

امکانات کلیدی STM32CubeIDE:

⚙️ پیکربندی آسان پین‌ها، کلاک، محیط‌های جانبی و میان‌افزارها
تولید خودکار کد اولیه پروژه و صرفه‌جویی در زمان توسعه
💻 محیط توسعه C/C++ پیشرفته بر پایه Eclipse/CDT و GCC
🐞 امکانات دیباگ پیشرفته شامل نمایش رجیسترها، حافظه، و دیباگ RTOS
📊آنالیزورهای ساخت و پشته برای بررسی وضعیت پروژه و نیازمندی‌های حافظه
🔄 امکان ایمپورت پروژه‌ها از Atollic TrueSTUDIO و AC6 System Workbench
پشتیبانی از پلاگین‌های Eclipse
🐧 پشتیبانی از سیستم‌عامل‌های ویندوز، لینوکس و macOS (نسخه‌های ۶۴ بیتی)
✔️ ادغام با STM32CubeMX برای پیکربندی و ایجاد پروژه
✔️ پشتیبانی از دیباگرهای ST-LINK و J-Link

با استفاده از STM32CubeIDE، شما می‌توانید به راحتی پروژه‌های خودتان را برای میکروکنترلرهای STM32 ایجاد، کدنویسی، کامپایل و دیباگ کنید. این نرم‌افزار با ارائه امکانات پیشرفته، به شما کمک می‌کند تا پروژه‌های خودتان را سریع‌تر و کارآمدتر توسعه دهید.

برای دانلود مستقیم STM32CubeIDE به لینک زیر مراجعه نمایید:
https://news.1rj.ru/str/mBedLabLearning/48

‌‏#STM32 #STM32CubeIDE #میکروکنترلر #برنامه_نویسی #الکترونیک #EmbeddedSystems #نرم_افزار

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🤩1
en.st-stm32cubeide_1.17.0_23558_20241125_2245_x86_64.exe.zip
1 GB
فایل نرم افزار STM32CubeIDE نسخه 1.17.0

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
2🤩2👍1
#قانون 1.4 MISRA C - از ویژگی‌های جدید زبان C11 با احتیاط استفاده کنید!

○ گروه: #محیط_استاندارد_C
○ دسته‌بندی: #الزامی
○ اعمال برای: C11

در توسعه نرم‌افزارهای حساس به ایمنی و امنیت، رعایت استانداردها و پرهیز از رفتارهای غیرقابل پیش‌بینی بسیار حیاتی است. Rule 1.4 در استاندارد MISRA C به همین موضوع می‌پردازد و استفاده از ویژگی‌های "نوظهور" زبان را محدود می‌کند.

چرا این قانون مهم است؟
استفاده از این ویژگی‌ها می‌تواند منجر به رفتارهای undefined (تعریف‌نشده)، unspecified (نامشخص) یا implementation-defined (وابسته به پیاده‌سازی) شود. این یعنی کد شما ممکن است در کامپایلرها یا سیستم‌عامل‌های مختلف، رفتارهای متفاوتی داشته باشد و این امر می‌تواند خطرات جدی به همراه داشته باشد. حتی اگر رفتاری کاملاً تعریف‌شده باشد، ممکن است با انتظارات توسعه‌دهنده همخوانی نداشته باشد و منجر به باگ شود.

به طور خاص، این قانون استفاده از ویژگی‌های Annex K (رابط‌های بررسی مرزها) را به جز تعریف __STDC_WANT_LIB_EXT1__ به 0، ممنوع می‌کند.

راه حل چیست؟
اگر مجبور به استفاده از یک ویژگی نوظهور هستید، حتماً باید یک "انحراف" (deviation) ثبت کنید و رفتارهای نامطلوب احتمالی را شناسایی و اقدامات لازم برای جلوگیری از تأثیر آنها بر ایمنی و امنیت سیستم را مشخص کنید.

به عبارت دیگر، قبل از استفاده از هر ویژگی جدید، به دقت مستندات آن را بررسی کنید و از پیامدهای احتمالی آن آگاه باشید.


قوانین مرتبط:
قانون 1.3

#برنامه_نویسی#استاندارد_MISRA
#Embedded

📍امبدلب به فارسی:
@mBedLabLearning

📍mBedLab in English:
@mBedLabLearningEN

📍mBedLab Türkçe'de
@mBedLabLearningTR
🔥1🤩1