8052 임베디드 플랫폼에서 응용 프로그램 코드에 대한 CRC32를 계산하려고합니다.주소를 포함하는 변수에 대한 포인터
다음은 CRC 계산에 가이드로 제공됩니다 다음
void TestChecksum()
{
unsigned short calc = 0;
/* Run the checksum algorithm */
calc = slow_crc16(0, (unsigned char *) ChecksumStart, (ChecksumEnd - ChecksumStart+1));
/* Rotate out the answer */
unsigned char zeros[2] = {0, 0};
calc = slow_crc16(calc, zeros, 2);
etc...
}
경우의 예와
unsigned short slow_crc16(unsinged short sum, unsigned char *p, unsigned int len)
{
while (len--)
{
int i;
unsigned char byte = *(p++);
for (i = 0; i < 8; ++i)
{
etc...
}
}
문제는 내가 CODE 후 해요 반면 포인터가 자동으로 XDATA를 가리키는 것입니다 . CRC를 계산할 코드의 주소를 알고 있습니다 (0x2000에서 0x2FFF까지).
uint8_t __code *Ptr;
을 그리고 주소에 전달하는 CRC 함수에 UINT32로,의에 0x2000을 :
는 말과 같은 포인터를 정의 할 수 있습니까?
는 기본적으로 나는 포인터가 실제로 변수에 저장되어있는 주소를 가리 키도록하는 방법을 알아 작동하지 않을 수 있습니다.
도움이된다면, 이것이 가능할 지 모르겠다.
을 그 값 : Ptr = 0x2000; – Magn3s1um