اطلاعیه

Collapse
No announcement yet.

پرش به آدرس برنامه در lpc1768

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پرش به آدرس برنامه در lpc1768

    سلام
    سوالم رو تو اون یکی سایت پرسیدم ولی هیچکس سوادش رو نداشت و کاش از همون اول اینجا میپرسیدم تا وقتم حروم نشه
    من توی برنامه بوتلودر 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))();
    وقتی که برد رو روشن میکنم به ادرس 8000 پرش نمیکنه! ولی وقتیکه دکمه ریست برد رو فشار میدم به ادرس پرش میکنه
    چرا؟؟؟؟
    هزار بارم که ریست کنم پرش میکنه
    به دیباگر هم وصلش کردم و با هر بار اجرا راحت به ادرس پرش میکنه
    تنها مشکل اینه که با ولتاژ دادن به مدار، پرش نمیکنه و این رو مطمئن هستم که تابع جامپ رو فراخوانی میکنه و همه دستورات توشم اجرا میکنه ولی به ادرس جامپ نمیکنه... اگه ریست رو فشار بدم درست میشه
    اول برنامه اینورش اونورش اومدم تاخیر گذاشتم ولی فایده نداشت
    چرا اینطوریه خواهشا یکی کمکم کنه کل امروزم پای این گیر شدم
لطفا صبر کنید...
X