Я упускаю что-то очевидное здесь. Я получаю сообщение об ошибке на STM32 (CubeIDE) при попытке ввести рабочий код в функцию ... Этот работает:
uint8_t framebuffer[SUBFBUF_XYMAX*SUBFBUF_XYMAX*BPP]; //24 bpp framebuffer
...
ii = rand() % SUBFBUF_XYMAX;
jj = rand() % SUBFBUF_XYMAX;
DrawPoint (ii,jj,framebuffer[0], 255, 255,255);
framebuffer[ii*BPP+jj*SUBFBUF_XYMAX*BPP] = 255;
framebuffer[ii*BPP+jj*SUBFBUF_XYMAX*BPP+1] = 255;
framebuffer[ii*BPP+jj*SUBFBUF_XYMAX*BPP+2] = 255;
, но когда я пытаюсь вставить это в функцию (в другом файле, показанном ниже) Я получаю HardFault при второй записи в кадровый буфер. Должно быть логическое объяснение того, что не так ... Это не работает:
DrawPoint (ii,jj,framebuffer[0], 255, 255,255);
, а затем определение функции
void DrawPoint(int x0, int y0, uint8_t framebuf[], uint8_t red, uint8_t green,uint8_t blue) {
int temp=x0*BPP+y0*SUBFBUF_XYMAX*BPP;
framebuf[x0*BPP+y0*SUBFBUF_XYMAX*BPP] = (uint8_t)blue;
framebuf[x0*BPP+y0*SUBFBUF_XYMAX*BPP+1] = (uint8_t)green;
framebuf[x0*BPP+y0*SUBFBUF_XYMAX*BPP+2] = (uint8_t)red;
}
Заранее спасибо, привет, R.