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