سلام
سوالم رو تو اون یکی سایت پرسیدم ولی هیچکس سوادش رو نداشت و کاش از همون اول اینجا میپرسیدم تا وقتم حروم نشه
من توی برنامه بوتلودر lpc1768 به ادرس 8000 که برناممهست پرش میکنم با کد زیر
وقتی که برد رو روشن میکنم به ادرس 8000 پرش نمیکنه! ولی وقتیکه دکمه ریست برد رو فشار میدم به ادرس پرش میکنه
چرا؟؟؟؟
هزار بارم که ریست کنم پرش میکنه
به دیباگر هم وصلش کردم و با هر بار اجرا راحت به ادرس پرش میکنه
تنها مشکل اینه که با ولتاژ دادن به مدار، پرش نمیکنه و این رو مطمئن هستم که تابع جامپ رو فراخوانی میکنه و همه دستورات توشم اجرا میکنه ولی به ادرس جامپ نمیکنه... اگه ریست رو فشار بدم درست میشه
اول برنامه اینورش اونورش اومدم تاخیر گذاشتم ولی فایده نداشت
چرا اینطوریه خواهشا یکی کمکم کنه کل امروزم پای این گیر شدم
سوالم رو تو اون یکی سایت پرسیدم ولی هیچکس سوادش رو نداشت و کاش از همون اول اینجا میپرسیدم تا وقتم حروم نشه
من توی برنامه بوتلودر lpc1768 به ادرس 8000 که برناممهست پرش میکنم با کد زیر
کد:
typedef void __attribute__((noreturn)) (*exec)(); uint32_t *start ; SCB->VTOR = USER_FLASH_START; // set stack pointer to start address of second binary. The start address of a new binary contains the address of the stack pointer __set_MSP(*(uint32_t*) USER_FLASH_START); // jump to the new binary start = (uint32_t*) (USER_FLASH_START + 4); // address of the reset vector for the new binary ((exec)(*start))();
چرا؟؟؟؟
هزار بارم که ریست کنم پرش میکنه
به دیباگر هم وصلش کردم و با هر بار اجرا راحت به ادرس پرش میکنه
تنها مشکل اینه که با ولتاژ دادن به مدار، پرش نمیکنه و این رو مطمئن هستم که تابع جامپ رو فراخوانی میکنه و همه دستورات توشم اجرا میکنه ولی به ادرس جامپ نمیکنه... اگه ریست رو فشار بدم درست میشه
اول برنامه اینورش اونورش اومدم تاخیر گذاشتم ولی فایده نداشت
چرا اینطوریه خواهشا یکی کمکم کنه کل امروزم پای این گیر شدم