各位大神,求解答一下,历程中 iap.c中的一个验证地址的函数
- BOOL iap_check_addr(DWORD addr)
- {
- addr &= 0x1ffff;
-
- return ((addr < 0x10000) ||
- (addr >= (0x10000 + LDR_SIZE)));
- }
复制代码
返回0值表示地址合法。
下面向flash写数据的时候使用了这个函数
- BOOL iap_write_byte(DWORD addr, BYTE dat)
- {
- if (!iap_check_addr(addr))
- return 0;
-
- IAP_CMD = 2;
- IAP_ADDRE = BYTE2(addr) & 0x01;
- IAP_ADDRH = BYTE1(addr);
- IAP_ADDRL = BYTE0(addr);
- IAP_DATA = dat;
- IAP_TRIG = 0x5a;
- IAP_TRIG = 0xa5;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
-
- return (iap_read_byte(addr) == dat);
- }
复制代码
地址符合,按照例程,会直接退出吧,不明白。
求各位大神,解答。
|