X
تبلیغات
رایتل

آذر میکرو ( دنیای میکروکنترلرها )

برنامه نویس میکروکنترل ها

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


برای حفاظت از برنامه های پروگرام شده روی میکروکنترلر و جلوگیری از کپی شدن آن میبایست حافظه کد یا همان ROM برنامه قفل شود. با انجام این کار حافظه ROM برای پروگرامر غیر قابل دسترس میشود و تنها امکان پاک کردن حافظه و برنامه ریزی مجدد آن وجود دارد

  


در میکروکنترلرهای AVR با استفاده از فیوز بیت ها به راحتی  میشد برنامه های پروگرام شده روی میکرو را قفل کرد. ولی در میکروکنترلرهای آرم  فیوز بیتی وجود ندارد و تمام تنظیمات مربوط به منابع کلاک و قفل حافظه توسط برنامه نوشته شده توسط کاربر تعیین و پس از اجرا فعال میشود
به طور کلی برای تنظیمات حفاظتی 4 سطح مخلتف تعیین شده است که با قرار گرفتن میکروکنترلر در هر یک از این حالت ها سطح امنیتی تعریف شده برای آن سطح  فعال میشود. توجه کنید که برای اعمال تغییر سطوح میکروکنترلر میبایست یک بار ریست شود

سطح 0 :  یا بدون قفل , در این سطح هیچ محدودیتی برای پروگرام ، بازنگری و خواندن حافظه توسط پروتکل JTAG و ISP وجود ندارد. این سطح به صورت پیشفرض فعال میباشد.    


سطح 1 : در این سطح پروتکل JTAG به صورت کامل غیر فعال میشود و پروگرام کردن میکروکنترلر تنها از طریق ISP میسر میباشد. همچنین دستورات ISP مربوط به خواندن و مقایسه حافظه نیز غیر فعال میشود. ولی همچنان امکان پاک کردن تک تک سکتورهای حافظه و برنامه ریزی مجدد آن وجود دارد. این روش مناسب مواقعی میباشد که برنامه های پروگرام شده نیاز به آپدیت داشته باشد.


سطح 2 : این سطح تقریبا شبیه سطح 1 میباشد با این تفاوت که در این سطح دستورات    ISP مربوط به  نوشتن در حافظه RAM و کپی از ROM به Flash نیز غیر فعال میشود و تنها امکان پاک کردن یکباره  کل حافظه و برنامه ریزی مجدد آن وجود دارد

سطح 3 : این سطح مشابه سطح 2 میباشد با این تقاوت که در این سطح در صورتی که برنامه ی معتبری در سکتور 0 حافظه فلش وجود داشته باشد پروتکل ISP نیز غیر فعال میشود. یعنی اگر این سطح فعال شود هر گونه  پروگرام کردن میکروکنترلر از طریق ISP و JTAG غیر فعال فعال میشود ، مگر اینکه برنامه معتبری روی میکروکنترلر پروگرام  نشده باشد. پس برنامه پروگرام شده با این سطح امنیتی آخرین برنامه ای خواهد بود که روی میکرو پروگرام میشود و تنها در صورتی از آن استفاده کنید که نیازی به آپدیت نداشته باشید.

فعال کردن هر یک از این سطوح توسط تغییر فایل startup_LPC17xx.s انجام میشود. توسط خود کیل  و یا نرم افزار Notepad این فایل را باز کنید و به دنبال عبارت CRP_Key بگردید


CRP_Key         DCD     0xFFFFFFF


هر یک از سطوح دارای یک کلید 32 بیتی میباشند که میبایست با عدد هگز 0     xFFFFFFF 0  که مربوط به کلید سطح 0 میباشد جایگزین شوند


کلید سطح 0 :  0xFFFFFFF
کلید سطح 1 :  0x12345678 
کلید سطح 2 :  0x87654321
کلید سطح 3 :  0x43218765

پس از تغییر کلید موبوطه تغییرات را ذخیره نموده ، برنامه را مجددا کامپایل و پروگرام نمایید .

 

 


تاریخ ارسال: سه‌شنبه 19 شهریور 1392 ساعت 10:56 | نویسنده: شاپور جگرگوشه
نظرات (1)
شنبه 23 شهریور 1392 18:33
احمد عزیزی [ ]
امتیاز: 2 0
لینک نظر
خوب بود متشکریم امیدوارم ادامه بدهید
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
نام :
پست الکترونیک :
وب/وبلاگ :
ایمیل شما بعد از ثبت نمایش داده نخواهد شد