سلام
کسی میدونه این دستورات دقیقا چی میگن:
و کاملش رو اینجا میزارم که متوجه کل برنامه بشید:
int current_cpu_ipl; /* declare temp variable for CPU IPL storing */
ممنون میشم کمی بهش فکر کنید و اگر چیزی به ذهنتون رسید اینجا بنویسید
کسی میدونه این دستورات دقیقا چی میگن:
asm volatile ("mov.b %1,[%0] \n"
"mov.b %2,[%0] \n"
"mov.b %3,[%0] \n" : /* no outputs */ : "r"(p), "r"(b), "r"(c),
"r"(a));
دستورات که دستور mov هستن اما چی رو تویه چی میزن رو نفهمیدم"mov.b %2,[%0] \n"
"mov.b %3,[%0] \n" : /* no outputs */ : "r"(p), "r"(b), "r"(c),
"r"(a));
و کاملش رو اینجا میزارم که متوجه کل برنامه بشید:
int current_cpu_ipl; /* declare temp variable for CPU IPL storing */
SET_AND_SAVE_CPU_IPL(current_cpu_ipl, 7);
char a, b, c, *p;
a = 2;
b = 0x46;
c = 0x57;
p = (char *)&OSCCON;
asm volatile ("mov.b %1,[%0] \n"
"mov.b %2,[%0] \n"
"mov.b %3,[%0] \n" : /* no outputs */ : "r"(p), "r"(b), "r"(c),
"r"(a));
/* restore CPU IPL value after executing unlock sequence */
RESTORE_CPU_IPL(current_cpu_ipl);
ضمنا این کدها مربوط به تغییر ریجستر osccon در میکرو dspic30f هست و باعث میشه که کریستال ساعت کانفینگ بشه؛ من فقط همون قسمت دستورات mov رو مشکل دارم و بقیه رو میفهمم.char a, b, c, *p;
a = 2;
b = 0x46;
c = 0x57;
p = (char *)&OSCCON;
asm volatile ("mov.b %1,[%0] \n"
"mov.b %2,[%0] \n"
"mov.b %3,[%0] \n" : /* no outputs */ : "r"(p), "r"(b), "r"(c),
"r"(a));
/* restore CPU IPL value after executing unlock sequence */
RESTORE_CPU_IPL(current_cpu_ipl);
ممنون میشم کمی بهش فکر کنید و اگر چیزی به ذهنتون رسید اینجا بنویسید
دیدگاه