Temp fix for UART text box BusFault?

Attempts to fix BusFault with huge amount of fast data
Still have weird hangs in some cases with huge amounts of data
But this fixes crashes atleast
Weird thing is that these hangs are not full, CLI keeps working for a few seconds
This commit is contained in:
Willy-JL
2024-03-22 06:11:16 +00:00
parent 6fb382aafa
commit 04ecef4048

View File

@@ -103,8 +103,12 @@ static void text_box_insert_endline(Canvas* canvas, TextBoxModel* model) {
uint8_t lines_on_screen = 56 / canvas_current_font_height(canvas);
if(model->focus == TextBoxFocusEnd && line_num > lines_on_screen) {
// Set text position to 5th line from the end
const char* end = model->text + furi_string_size(model->text_formatted);
// TODO: Find proper fix, this prevents BusFault but hangs GUI after another while? makes no sense
for(uint8_t i = 0; i < line_num - lines_on_screen; i++) {
while(*model->text_pos++ != '\n') {
// Debugger shows it's stuck in this loop, but it also shows the while condition is false??
while(model->text_pos < end) {
if(*model->text_pos++ == '\n') break;
}
}
model->scroll_num = line_num - (lines_on_screen - 1);