با سلام.
توی این تاپیک سعی میکنم نکاتی را در مورد برنامه نویسی c برای AVR که کمتر در موردش صحبت میشه توضیح دهیم
اولین نکته ای که به ذهنم میرسه در مورد اشاره گرهای به توابع هست
در AVR اشاره گرهای به توابع به حافظه فلش اشاره میکنند
به عنوان مثال کد زیر باعث میشود که برنامه به آدرس 0 (RESET) حافظه فلش پرش کند : و به این ترتیب میکرو به صورت نرم افزاری ریست میشود.
;void (*function)(void) = 0x0000
میتوانیم به جای 0000 هر آدرسی که خواستیم بگذاریم. به عنوان مثال میتوانیم آدرس شروع برنامه Bootloader را بگذاریم و از داخل Application به بوتلودر پرش کنیم.
شاید هم بتوانیم 2 برنامه مجزا بنویسیم و در 2 آدرس مختلف فلش ذخیره کنیم و به هر کدام که خواستیم پرش کنیم
البته درستی این مطلب را نمیدانم و شاید بهتر باشه یکی از اساتید آن را تائید کند
توی این تاپیک سعی میکنم نکاتی را در مورد برنامه نویسی c برای AVR که کمتر در موردش صحبت میشه توضیح دهیم
اولین نکته ای که به ذهنم میرسه در مورد اشاره گرهای به توابع هست
در AVR اشاره گرهای به توابع به حافظه فلش اشاره میکنند
به عنوان مثال کد زیر باعث میشود که برنامه به آدرس 0 (RESET) حافظه فلش پرش کند : و به این ترتیب میکرو به صورت نرم افزاری ریست میشود.
;void (*function)(void) = 0x0000
میتوانیم به جای 0000 هر آدرسی که خواستیم بگذاریم. به عنوان مثال میتوانیم آدرس شروع برنامه Bootloader را بگذاریم و از داخل Application به بوتلودر پرش کنیم.
شاید هم بتوانیم 2 برنامه مجزا بنویسیم و در 2 آدرس مختلف فلش ذخیره کنیم و به هر کدام که خواستیم پرش کنیم
البته درستی این مطلب را نمیدانم و شاید بهتر باشه یکی از اساتید آن را تائید کند
دیدگاه