uart: allow unbound TX pin

This commit is contained in:
Zihao Yu 2024-01-04 21:54:17 +08:00
parent 9a5ccda71b
commit c7bf288ab6
2 changed files with 6 additions and 5 deletions

View File

@ -85,16 +85,16 @@ void nvboard_init(int vga_clk_cycle) {
);
SDL_SetRenderDrawColor(main_renderer, 0xff, 0xff, 0xff, 0);
for (int i = 0; i < NR_PINS; i ++) {
if (pin_array[i].ptr == NULL) pin_array[i].ptr = &pin_array[i].data;
}
void init_font(SDL_Renderer *renderer);
init_font(main_renderer);
init_render(main_renderer);
init_components(main_renderer);
init_gui(main_renderer);
for (int i = 0; i < NR_PINS; i ++) {
if (pin_array[i].ptr == NULL) pin_array[i].ptr = &pin_array[i].data;
}
update_components(main_renderer);
boot_time = get_time_internal();

View File

@ -10,7 +10,8 @@ UART::UART(SDL_Renderer *rend, int cnt, int init_val, int ct, int x, int y, int
state(0), divisor(16), need_update_gui(false) {
term = new Term(rend, x, y, w, h);
divisor_cnt = divisor - 1;
assert(pin_array[UART_TX].vector_len == 1);
int len = pin_array[UART_TX].vector_len;
assert(len == 0 || len == 1); // either unbound or bound to 1 bit signal
uart_tx_ptr = (uint8_t *)pin_array[UART_TX].ptr;
}