✅ #هفت_سین مهندسان نهفته!
✍ امبدد آکادمی
🔹 ۱. #سخت_افزار
سامانه نهفته از سه بخش سخت افزار ، نرم افزار و میان افزار تشکیل شده هست. که به نظر می رسد طراحی و توسعه سخت افزاری پیچیده ترین قسمت طراحی سیستم نهفته باشد که البته به لحاظ توجیه پذیری اقتصادی انجام پروژه با توجه به تیراژ محصول بسیار موثر می باشد.
#HardWare
🔹 ۲. #سیستم_عامل_نهفته
سامانه نهفته پیشرفته بدون استفاده از سیستم عامل نهفته محال و چیزی شبیه طنز است!
سیستم عامل های نهفته و بلادرنگ از ضروریات یک مهندس نهفته می باشد.
#EmbeddedOS
🔹 ۳. #سیگنال
سیگنال و خصوصا سیگنال دیجیتال !
نقش اساسی هم در کارکرد مدارات دیجیتال و هم در اپلیکیشن ها و حل مسایل کاربردی را داراست.
حتی اگر هدف شما #پردازش_سیگنال ، #پردازش_گفتار و یا #پردازش_تصویر نباشد ، سیگنال های دیجیتال نقش اساسی در سیستم شما ایفا می کند و می بایست با مفاهیم آن آشنا باشید.
اگر قرار است با محیط بیرون و سیگنال های عمدتا آنالوگ موجود در طبیعت هم کار کنید که هم سیگنال #آنالوگ و هم مبدل های #ADC را هم باید فرا بگیرید!
#Signal_Processing
🔹 ۴. سینگل برد ها!
اگر دنبال راه حلی برای ساخت محصولات با تیراژ پایین ، ارزیابی یا ساخت نمونه اولیه و یا برای اهداف آموزشی هستید ، راه حل سینگل بردها هستند.
کامپیوتر های تک بردی
Single Board Computer
#SBC
از جمله #رسپبری_پای ، #بیگل_بن و ...
و یا میکرو کنترلر های تک بردی
Single Board Microcontroller
#SBM
نظیر #آردوینو ، #انرژیا و...
از این قبیل هستند.
که متاسفانه برخی دانش نهفته را در اینها خلاصه می کنند!
🔹 ۵. #سی و سی پلاس پلاس
در یادگیری و اهمیت این دو زبان برنامه نویسی شک نکنید !
البته به این نکته توجه کنید که با سی پلاس پلاس ، سی کد نزنید!
چون صرفا با استفاده از سینتکس های #CPP بجای C ، شما برنامه نویس سی پلاس پلاس نیستید.
شما باید مفاهیم پیشرفته ای همچون #شی_گرایی ، وراثت ،کپسوله سازی و ... را فرا بگیرید.
نکته ی دیگر اینکه؛
فراموش نکنید با یادگیری CPP می توانید از سنتز سطح بالا (#HLS) بعنوان جایگزینی برای زبان های توصیف سخت افزار هم استفاده کنید.
🔹 ۶. سیستم روی تراشه
System on Chip
#SoC
پیشرفت فناوری نیمه هادی ها و البته نیاز به مصرف توان پایین و سرعت بالای سیستم ها در کنار ارزان سازی سیستم ها و در نتیجه کوچک سازی سیستم ها باعث شده است امروز هسته سیستم های نهفته پیشرفته امروزی سیستم روی تراشه ها باشند که البته به نظرم آینده روشنی دارند.
متداول ترین سیستم روی تراشه خصوصا در ایران ، سیستم روی تراشه های #Zynq می باشد.
اگر بدنبال دریافت مطالب تخصصی و آموزشی در این زمینه هستید کانال #تکسان را دنبال فرمائید:
@Taksuntec
🔹 ۷. سنسور
#Sensor
گسترش و بازار بزرگ #اینترنت_اشیا در آینده ، باعث تحول در سنسور ها شده و خواهد شد چرا که اینترنت اشیا ، هوشمند سازی و سیستم هوشمند بدون وجود #سنسور معنایی ندارد. شبکه سنسورهای بی سیم از دیگر فناوری های آینده مبتنی بر #سنسور هست.
🌹مجددا در آخرین لحظات سال ۹۷ ،
ضمن تبریک پیشاپیش #سال_نو و عید #نوروز برایتان مهم ترین سین دنیا ، #سلامتی توام با موفقیت و سعادت را آرزومندیم.🙏
📌 امبدد آکادمی | فرهنگستان مهندسان نهفته ایران🇮🇷
@embedded
✍ امبدد آکادمی
🔹 ۱. #سخت_افزار
سامانه نهفته از سه بخش سخت افزار ، نرم افزار و میان افزار تشکیل شده هست. که به نظر می رسد طراحی و توسعه سخت افزاری پیچیده ترین قسمت طراحی سیستم نهفته باشد که البته به لحاظ توجیه پذیری اقتصادی انجام پروژه با توجه به تیراژ محصول بسیار موثر می باشد.
#HardWare
🔹 ۲. #سیستم_عامل_نهفته
سامانه نهفته پیشرفته بدون استفاده از سیستم عامل نهفته محال و چیزی شبیه طنز است!
سیستم عامل های نهفته و بلادرنگ از ضروریات یک مهندس نهفته می باشد.
#EmbeddedOS
🔹 ۳. #سیگنال
سیگنال و خصوصا سیگنال دیجیتال !
نقش اساسی هم در کارکرد مدارات دیجیتال و هم در اپلیکیشن ها و حل مسایل کاربردی را داراست.
حتی اگر هدف شما #پردازش_سیگنال ، #پردازش_گفتار و یا #پردازش_تصویر نباشد ، سیگنال های دیجیتال نقش اساسی در سیستم شما ایفا می کند و می بایست با مفاهیم آن آشنا باشید.
اگر قرار است با محیط بیرون و سیگنال های عمدتا آنالوگ موجود در طبیعت هم کار کنید که هم سیگنال #آنالوگ و هم مبدل های #ADC را هم باید فرا بگیرید!
#Signal_Processing
🔹 ۴. سینگل برد ها!
اگر دنبال راه حلی برای ساخت محصولات با تیراژ پایین ، ارزیابی یا ساخت نمونه اولیه و یا برای اهداف آموزشی هستید ، راه حل سینگل بردها هستند.
کامپیوتر های تک بردی
Single Board Computer
#SBC
از جمله #رسپبری_پای ، #بیگل_بن و ...
و یا میکرو کنترلر های تک بردی
Single Board Microcontroller
#SBM
نظیر #آردوینو ، #انرژیا و...
از این قبیل هستند.
که متاسفانه برخی دانش نهفته را در اینها خلاصه می کنند!
🔹 ۵. #سی و سی پلاس پلاس
در یادگیری و اهمیت این دو زبان برنامه نویسی شک نکنید !
البته به این نکته توجه کنید که با سی پلاس پلاس ، سی کد نزنید!
چون صرفا با استفاده از سینتکس های #CPP بجای C ، شما برنامه نویس سی پلاس پلاس نیستید.
شما باید مفاهیم پیشرفته ای همچون #شی_گرایی ، وراثت ،کپسوله سازی و ... را فرا بگیرید.
نکته ی دیگر اینکه؛
فراموش نکنید با یادگیری CPP می توانید از سنتز سطح بالا (#HLS) بعنوان جایگزینی برای زبان های توصیف سخت افزار هم استفاده کنید.
🔹 ۶. سیستم روی تراشه
System on Chip
#SoC
پیشرفت فناوری نیمه هادی ها و البته نیاز به مصرف توان پایین و سرعت بالای سیستم ها در کنار ارزان سازی سیستم ها و در نتیجه کوچک سازی سیستم ها باعث شده است امروز هسته سیستم های نهفته پیشرفته امروزی سیستم روی تراشه ها باشند که البته به نظرم آینده روشنی دارند.
متداول ترین سیستم روی تراشه خصوصا در ایران ، سیستم روی تراشه های #Zynq می باشد.
اگر بدنبال دریافت مطالب تخصصی و آموزشی در این زمینه هستید کانال #تکسان را دنبال فرمائید:
@Taksuntec
🔹 ۷. سنسور
#Sensor
گسترش و بازار بزرگ #اینترنت_اشیا در آینده ، باعث تحول در سنسور ها شده و خواهد شد چرا که اینترنت اشیا ، هوشمند سازی و سیستم هوشمند بدون وجود #سنسور معنایی ندارد. شبکه سنسورهای بی سیم از دیگر فناوری های آینده مبتنی بر #سنسور هست.
🌹مجددا در آخرین لحظات سال ۹۷ ،
ضمن تبریک پیشاپیش #سال_نو و عید #نوروز برایتان مهم ترین سین دنیا ، #سلامتی توام با موفقیت و سعادت را آرزومندیم.🙏
📌 امبدد آکادمی | فرهنگستان مهندسان نهفته ایران🇮🇷
@embedded
📰 #آگهی_استخدام ؛
📍 #تهران
📌 افرادی که در زمینه کاری زیر مایل به همکاری هستند با ID زیر و یا ایمیل embedded@iran.ir مکاتبه کنند.
1- کار با سیستم عامل #لینوکس در سختافزارهای Embedded،
برنامهنویسی زبان ++C/C ، آشنا با برنامهنویسی #Kernel و #Bootloader
#CPP
2- طراحی شماتیک و #PCB (به صورت چند لایه) و تحلیل Signal Integrity و Power Integrity
3- میکروکنترولر #STM32 و کار با #RTOS به صورت اصولی
4- کار با خانواده #ZYNQ و زبان توصیف سخت افزار Verilog.
5- مهندس برق (الکترونیک مخابرات) آشنا به چهارچوب برنامه نویسی #Qt
👈 همکاری به صورت تمام وقت یا پاره وقت (سه روز در هفته) میسر است.
افراد حتماً باید در زمینههای بالا درای تجربه کار عملی و پروژه داشته باشند.
آی دی تلگرام : @ofteax
✅ فرصت های شغلی مرتبط با مهندسی نهفته 👇
@embedded
📍 #تهران
📌 افرادی که در زمینه کاری زیر مایل به همکاری هستند با ID زیر و یا ایمیل embedded@iran.ir مکاتبه کنند.
1- کار با سیستم عامل #لینوکس در سختافزارهای Embedded،
برنامهنویسی زبان ++C/C ، آشنا با برنامهنویسی #Kernel و #Bootloader
#CPP
2- طراحی شماتیک و #PCB (به صورت چند لایه) و تحلیل Signal Integrity و Power Integrity
3- میکروکنترولر #STM32 و کار با #RTOS به صورت اصولی
4- کار با خانواده #ZYNQ و زبان توصیف سخت افزار Verilog.
5- مهندس برق (الکترونیک مخابرات) آشنا به چهارچوب برنامه نویسی #Qt
👈 همکاری به صورت تمام وقت یا پاره وقت (سه روز در هفته) میسر است.
افراد حتماً باید در زمینههای بالا درای تجربه کار عملی و پروژه داشته باشند.
آی دی تلگرام : @ofteax
✅ فرصت های شغلی مرتبط با مهندسی نهفته 👇
@embedded
📰 #آگهی_استخدام
📍 #تهران
📌 شرکت پژوهش نوین رایانه، واقع در مرکز تهران ، فعال در زمینه ی #الکترونیک و #IT، به یک نفر (آقا یا خانم) مسلط به موارد زیر به صورت تمام وقت، نیازمند است:
🔸 تسلط به برنامه نویسی C/C++ (حرفه ای)
#CPP
🔹 تسلط به استفاده از بردهای #embedded linux
🔸 مسلط به make
🔹 آشنایی با مفاهیم اصلی #لینوکس ( کرنل، بوت لودر، فایل سیستم)
#kernel
👈 علاقه مندان به همکاری میتوانند رزومه ی کاری خود را به آدرس ایمیل زیر، ارسال نمایند.
✉️ PnrElectronic@gmail.com
✅ فرصتهای شغلی مهندسی الکترونیک/کامپیوتر/نهفته👇
@embedded
📍 #تهران
📌 شرکت پژوهش نوین رایانه، واقع در مرکز تهران ، فعال در زمینه ی #الکترونیک و #IT، به یک نفر (آقا یا خانم) مسلط به موارد زیر به صورت تمام وقت، نیازمند است:
🔸 تسلط به برنامه نویسی C/C++ (حرفه ای)
#CPP
🔹 تسلط به استفاده از بردهای #embedded linux
🔸 مسلط به make
🔹 آشنایی با مفاهیم اصلی #لینوکس ( کرنل، بوت لودر، فایل سیستم)
#kernel
👈 علاقه مندان به همکاری میتوانند رزومه ی کاری خود را به آدرس ایمیل زیر، ارسال نمایند.
✉️ PnrElectronic@gmail.com
✅ فرصتهای شغلی مهندسی الکترونیک/کامپیوتر/نهفته👇
@embedded
This media is not supported in your browser
VIEW IN TELEGRAM
🎥 #فیلم؛
بررسی پردازش در #CPU و #GPU
بررسی با استفاده از #OpenCL و #Cpp
🌹 باتشکر از مهندس ابوالفضل تجری
📬 #مطلب_ارسالی
@Developer_IT_RObatic_Network
#CV
@embedded
بررسی پردازش در #CPU و #GPU
بررسی با استفاده از #OpenCL و #Cpp
🌹 باتشکر از مهندس ابوالفضل تجری
📬 #مطلب_ارسالی
@Developer_IT_RObatic_Network
#CV
@embedded
[@embedded]Professional_CMake_A_Practical_Guid.pdf
24.2 MB
📖 #دانلود_کتاب
🔸 طراحی و برنامه نویسی #رابط_گرافیکی با استفاده از ++C و Qt5
🔹 آشنایی و مثال هایی از طراحی رابط های گرافیکی ( #GUI ) با استفاده از فریمورک قدرت مند و چندسکویی Qt
👈 مناسب برای علاقه مندان به حوزه های #نرم_افزار ، #نرم_افزار_نهفته ، #برنامه_نویسی و #رابط_کاربری
📇 #Packt 2018
#Qt
#Qt5
#CPP
🔸 دوشنبه ها ، #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
🔸 طراحی و برنامه نویسی #رابط_گرافیکی با استفاده از ++C و Qt5
🔹 آشنایی و مثال هایی از طراحی رابط های گرافیکی ( #GUI ) با استفاده از فریمورک قدرت مند و چندسکویی Qt
👈 مناسب برای علاقه مندان به حوزه های #نرم_افزار ، #نرم_افزار_نهفته ، #برنامه_نویسی و #رابط_کاربری
📇 #Packt 2018
#Qt
#Qt5
#CPP
🔸 دوشنبه ها ، #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
[@embedded]Hands-On_GUI_Programming_with_C++.pdf
13.9 MB
📖 #دانلود_کتاب
🔸 طراحی و برنامه نویسی #رابط_گرافیکی با استفاده از ++C و Qt5
🔹 آشنایی و مثال هایی از طراحی رابط های گرافیکی ( #GUI ) با استفاده از فریمورک قدرت مند و چندسکویی Qt
👈 مناسب برای علاقه مندان به حوزه های #نرم_افزار ، #نرم_افزار_نهفته ، #برنامه_نویسی و #رابط_کاربری
📇 #Packt 2018
#Qt
#Qt5
#CPP
🔸 دوشنبه ها ، #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
🔸 طراحی و برنامه نویسی #رابط_گرافیکی با استفاده از ++C و Qt5
🔹 آشنایی و مثال هایی از طراحی رابط های گرافیکی ( #GUI ) با استفاده از فریمورک قدرت مند و چندسکویی Qt
👈 مناسب برای علاقه مندان به حوزه های #نرم_افزار ، #نرم_افزار_نهفته ، #برنامه_نویسی و #رابط_کاربری
📇 #Packt 2018
#Qt
#Qt5
#CPP
🔸 دوشنبه ها ، #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
👍1
🔸 کتابهایی که براساس تجربه و دانش نویسندگان «استک آور فلو» نوشته شده است.
👈 مجموعه کتاب های GoalKicker
توسط نویسندگان استک آور فو (Stackoverflow) تهیه شده است که در حوزه های مختلف برنامه نویسی منتشر شده است.
✅ کتاب آموزش برنامه نویسی Cpp از این مجموعه را می توانید از اینجا دانلود کنید.
#Cpp
#Programming
#Book
@embedded
👈 مجموعه کتاب های GoalKicker
توسط نویسندگان استک آور فو (Stackoverflow) تهیه شده است که در حوزه های مختلف برنامه نویسی منتشر شده است.
✅ کتاب آموزش برنامه نویسی Cpp از این مجموعه را می توانید از اینجا دانلود کنید.
#Cpp
#Programming
#Book
@embedded
Embedded Academy
📖 #دانلود_کتاب 🔸 مبانی سیستم های نهفته 🔹 آشنایی با مفاهیم و مبانی سیستم های نهفته به صورت جامع و مختصر 👈 کتابی مناسب برای استفاده علاقه مندان به آشنایی با سیستم های نهفته و توسعه آن 👈 این کتاب به صورت کلی و عمومی شیوه های معمول توسعه و پیاده سازی سیستم…
📖 #دانلود_کتاب
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
👍1
@embeddedReal_Time_C_Efficient_Object_Oriented_and_Template_Microcontroller.pdf
4.3 MB
📖 #دانلود_کتاب
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
❤1
Embedded Academy
@embeddedReal_Time_C_Efficient_Object_Oriented_and_Template_Microcontroller.pdf
✅ #نکات_نهفته؛
👈 مراحل کامپایل تا فلش یک برنامه روی میکروکنترلر
🔺 صفحهای از این کتاب
#Cpp
#Programming
🔸 نکات نهفته را دنبال کنید.
🔺 @embedded
👈 مراحل کامپایل تا فلش یک برنامه روی میکروکنترلر
🔺 صفحهای از این کتاب
#Cpp
#Programming
🔸 نکات نهفته را دنبال کنید.
🔺 @embedded
❤1
Forwarded from Embedded Academy
🔸 کتابهایی که براساس تجربه و دانش نویسندگان «استک آور فلو» نوشته شده است.
👈 مجموعه کتاب های GoalKicker
توسط نویسندگان استک آور فو (Stackoverflow) تهیه شده است که در حوزه های مختلف برنامه نویسی منتشر شده است.
✅ کتاب آموزش برنامه نویسی Cpp از این مجموعه را می توانید از اینجا دانلود کنید.
#Cpp
#Programming
#Book
@embedded
👈 مجموعه کتاب های GoalKicker
توسط نویسندگان استک آور فو (Stackoverflow) تهیه شده است که در حوزه های مختلف برنامه نویسی منتشر شده است.
✅ کتاب آموزش برنامه نویسی Cpp از این مجموعه را می توانید از اینجا دانلود کنید.
#Cpp
#Programming
#Book
@embedded
👍3
Craig Scott - Professional CMake_ A Practical Guide (2022).pdf
5.6 MB
#book
📖 Professional #CMAKE
👉 A Practical Guide
✍️ Craig Scott
2022
🔗 #Build #Linker #Programming #Make #CPP #C
@embedded
📖 Professional #CMAKE
👉 A Practical Guide
✍️ Craig Scott
2022
🔗 #Build #Linker #Programming #Make #CPP #C
@embedded
😍4❤2
Embedded Academy
✅ #تاریخچه "سیستم نهفته" 40 📆1979 🎯 فناوری زبان برنامه نویسی بیارنه استراس تروپ ( Bjarne Stroustrup) دانشمند علوم کامپیوتر دانمارکی در آزمایشگاه بل زبان ++C را توسعه داد. #History #CPP @embedded
🔺Comparision of C++ and Posix Threads
✍️ B4b4k
What is the difference between using the C++ std threads and POSIX threads?
API: The API for C++ std threads and POSIX threads are different, with different function names and parameters. The C++ std thread library is part of the C++ standard library and provides a C++ interface, while the POSIX threads library is a separate library that provides a C interface.
Implementation: The implementation of C++ std threads and POSIX threads may differ depending on the specific platform and implementation details. C++ std threads are typically implemented using a combination of user-level and kernel-level threads, while POSIX threads are typically implemented using kernel-level threads.
Portability: C++ std threads are part of the C++ standard library, which makes them more portable than POSIX threads, which are a separate library and may not be available on all platforms.
Exception handling: C++ std threads support exception handling, while POSIX threads do not. This means that in C++ std threads, exceptions can be propagated across thread boundaries, while in POSIX threads, exceptions must be caught and handled within the same thread.
Synchronization primitives: C++ std threads provide a set of synchronization primitives, such as mutexes, condition variables, and atomic operations, that are designed to work with the C++ language and its memory model. POSIX threads provide similar synchronization primitives, but they are designed to work with the C language and may require more low-level manipulation of shared memory.
#Cpp
#Multithreading
#POSIX
@embedded
✍️ B4b4k
What is the difference between using the C++ std threads and POSIX threads?
API: The API for C++ std threads and POSIX threads are different, with different function names and parameters. The C++ std thread library is part of the C++ standard library and provides a C++ interface, while the POSIX threads library is a separate library that provides a C interface.
Implementation: The implementation of C++ std threads and POSIX threads may differ depending on the specific platform and implementation details. C++ std threads are typically implemented using a combination of user-level and kernel-level threads, while POSIX threads are typically implemented using kernel-level threads.
Portability: C++ std threads are part of the C++ standard library, which makes them more portable than POSIX threads, which are a separate library and may not be available on all platforms.
Exception handling: C++ std threads support exception handling, while POSIX threads do not. This means that in C++ std threads, exceptions can be propagated across thread boundaries, while in POSIX threads, exceptions must be caught and handled within the same thread.
Synchronization primitives: C++ std threads provide a set of synchronization primitives, such as mutexes, condition variables, and atomic operations, that are designed to work with the C++ language and its memory model. POSIX threads provide similar synchronization primitives, but they are designed to work with the C language and may require more low-level manipulation of shared memory.
#Cpp
#Multithreading
#POSIX
@embedded
👍6😍2❤1👎1🔥1
Embedded Academy
🔺Comparision of C++ and Posix Threads ✍️ B4b4k What is the difference between using the C++ std threads and POSIX threads? API: The API for C++ std threads and POSIX threads are different, with different function names and parameters. The C++ std thread…
One line down, more efficient: Tail Recursion
📌 B4b4k
Recursive functions are known for programmers, but it uses the call stack and has stack overflow risk. but simple change results in a big difference. this change is called "tail recursive". The tail recursion is that kind of recursion in which the recursive call is made at the end of the function.
Consider this formal recursion:
Can Change to the Tail-recursion version as follows:
Note in this version there is no statement after the recursive call.
While computers execute recursive with the help of stacks By using tail recursive instead of formal or head recursive, compilers (such as GCC) can transform this to loop and eliminates stack overflow risk and decrease space complexity from O(n) to O(1).
#Tips #Algorithms #Cpp
@embedded
📌 B4b4k
Recursive functions are known for programmers, but it uses the call stack and has stack overflow risk. but simple change results in a big difference. this change is called "tail recursive". The tail recursion is that kind of recursion in which the recursive call is made at the end of the function.
Consider this formal recursion:
unsigned int fact(unsigned int n)
{
if (n <= 0)
return 1;
return n * fact(n - 1);
}
Can Change to the Tail-recursion version as follows:
unsigned int factTail(unsigned int n, unsigned int a)
{
if (n == 1)
return a;
return factTail(n - 1, n * a);
}
unsigned int fact(unsigned int n) { return factTail(n, 1); }
Note in this version there is no statement after the recursive call.
While computers execute recursive with the help of stacks By using tail recursive instead of formal or head recursive, compilers (such as GCC) can transform this to loop and eliminates stack overflow risk and decrease space complexity from O(n) to O(1).
#Tips #Algorithms #Cpp
@embedded
👍9👏2❤1
Forwarded from Embedded Academy
📖 #دانلود_کتاب
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
👏2❤1
Forwarded from Embedded Academy
@embeddedReal_Time_C_Efficient_Object_Oriented_and_Template_Microcontroller.pdf
4.3 MB
📖 #دانلود_کتاب
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
🔸 سی پلاس پلاس بلادرنگ!
👈 راهنمای عملی برنامه نویسی بلادرنگ سیستمهای نهفته مبتنی بر میکروکنترلر به زبان ++C با تکیه بر دو ویژگی شی گرایی و Template
📇 #Springer
#embedded
#CPP #Microcontroller
🔸 #دانلود_کتاب های مرتبط با #مهندسی_نهفته را دنبال کنید.👇
@embedded
👍6❤1