سلام
کسی فرق بین کتابخونه های Standard Peripheral و HAL میدونه چیه؟
کدوم یکی برای استفاده بهتره؟
سلام
کسی فرق بین کتابخونه های Standard Peripheral و HAL میدونه چیه؟
کدوم یکی برای استفاده بهتره؟
ویرایش توسط hamed101 : 17-08-2015 در ساعت 18:06
اولی SPL قدیمی تر است و جا افتاده تر . دومی HALجدیدتر شلوغتر اشغالتر و دارای اشکالاتی است .
کسانی که حرفه ای هستند و وقت هم دارند بهتر است خودشان درایور خود را با توجه به دیتا شیت و با بررسی SPL بنویسند بهتر است.
درایور های st بسیار شلوغ و درهم نوشته شده و برای کار هم باید دیتاشیت را بفهمی هم کد درایور ST را.
با کمال احترام نظر من کاملا متفاوت است
به نظر کتابخونه های st بسار روان مشخص و واضحه و نیازی به دانستن اطلاعات خیلی کمی از سخت افزاره.
کتابخونه هو همه کلاسه بندی شدن و سطح بالا نوشه شدن. برای همه چیز کلاس و ساختار تعریف شده
اگه با برنامه نویسی سطح بالا اشنا باشین کار کردن با اونا براحتی آب خوردنه. و واقعا زحمت کشیدن و خیلیم خوبه.
این لینک را ببینید
ST's (STM32Cube) software ecosystem is terrible - how can we fix it? - Page 1
SPL(standard) بهتر از CUBE است ولی درایور حرفه ای و خاص کاربر خودتون را بنویسید هم سریعتر است هم کم حجم تر . ولی سخت تر و وقت گیر تر است برای حرفه ای ها و شرکتهای حرفه ای که بر اساس stm32 طراحی می کنند این بهترین راه است.
cube برخی توابع برای برخی peripherals را ندارد و سرعت اجرا کم است و اگر باگ داشته باشد چطوری رفع می کنید؟
منم با spl مینویسم. ولی با cube mx هم فرقی نداره. یه لایه بالاتره. تقزیبا یکی هستن. Hal هست. چرا نشه دیباگش کرد؟ مگه سورسش باینریه؟
کلا hal بد نیست . ولی بعضی چیزاش مثل uart جالب در نیومده . البته به نظر من .
من از اول با HAL شروع کردم : ADC - DAC - SPI - Timer استفاده کردم - خوبه و مشکل خاصی باهاش نداشتم - فقط اگه یه فایل پیدا می کردم که این HAL درایور رو هم راه مثال های خوب و حرفه ای تشریح می کرد سرعت کارم بالاتر می رفت . مثال های سایت STM برای همه اجزا موجود نبود .
HAL اماده برای کد نویسی ولی محدود به توابع داده شده و کاهش دهنده سرعت درایور.
با توابعی مه مستقیما به رجیستر می نویسند کد سریعتر و کم اشتباهتری دارید و خواندن manual کافیست. ولی باید تسلط زیادی به سخت افزار و درایور نویسی صحیح داشته باشید.
سلام
به نظر من بهترین کار مراجعه به دیتاشیت و نوشتن توابع مورد نیاز توسط خودتون هست.
منم اول رفتم کاری رو با hal انجام بدم ، اما کلی اسیرم کرد و به دردم نخورد . درنهایت تصمیم گرفتم توابعم رو خودم بنویسم و استفاده کنم.
یاعلی مدد
به تظر من spl بهتر از hal هست. اما hal بیشتر شبیه به برنامه نویسی سطح بالاست.
تا اونجابی که من میدونم کاربرد همه اینا تویه راه انداری اولیه ابزار های جانبیه. کند و تند هیچ تاثیری رویه کند و تند بودن خودشون ندارن. رانداری اولیه که کند و تندش مهم نیست.
با سلام خدمت دوستان . بنده چند سال است که با میکروکنترلر های شرکت st کار میکنم. اوایل با لایبری های std و به مقداری هم رجیستیری کد مینوشتم . بعدش که st نرم افزار stm32cube معرفی کرد امدم سمت این نرم افزار و بعدش دیگه با این نرم افزار پروژه هامو مینوسیم . یکی از مزایای این نرم افزار اینکه توی طراحی سخت افزار کمک زیادی به شما میکنه و اشتابهات کم مکنه. بهترین روش برنامه نویسی روی میکروکنترلر stm32 اینکه برنامتون رو با hal پیکر بندی بکنید اما دستورات و توابع رو خودتون به صورت دجیستری بنویسید تا سرعت اجرای دستوراتتون بالا بره.
ویرایش توسط mzarkoob : 06-03-2017 در ساعت 12:33 دلیل: درج لینک سایت