1

我正在尝试编写一个程序来检测用 AVR-GCC 编译的 Teensy 微控制器上位图的像素级冲突。我试图弄清楚如何计算屏幕上位图的单个字节的位置,并且被告知我应该使用指针。我看不到位图字节的物理地址与其在屏幕上的位置之间的关系,但我想调查一下。问题是,我无法打印这个地址。AVR 没有 printf,我不知道如何让它显示在屏幕上。有没有人有办法在终端中以某种方式生成这个地址?

即如果我有一个位图并想打印出第一个字节的地址,我需要写什么来完成这个:

??? *bit = &car_bitmap[1]; 
???("%??? ", bit);
4

2 回答 2

1

假设你有一个 working printf(),这应该工作:

void * const bit = &car_bitmap[1]; 
printf("%p\n", bit);

哪里%p是如何打印的void *。其他指针类型应该被强制转换void *为匹配,但我还是使用了 avoid *作为帧缓冲区的地址。

于 2018-05-22T11:44:44.460 回答
1

使用 snprintf 并将字符串发送到终端。在 AVR uC 上它非常昂贵。如果您使用 gcc 地址空间扩展,您可能必须链接对长数字的支持。

于 2018-05-22T09:54:59.900 回答