Перейти к содержанию
    

STM32CubeIDE чтение bin

Есть программа на Си под Расбери которая была переделанна под STM32f429

в финале необходимо добавить  возможность чтения из bin файла данных которые потом по SPi  залються во внешнее устройство

оригинальный код такой

uint8_t image_array[MAX_IMAGE_BYTES];

static struct ConstByteSpan read_in_image(char* image_file)
{
    // Attempt to open the file
    FILE* file = fopen(image_file, "r");
    assert(file != 0 && "Issue opening file");

    fseek(file, 0, SEEK_END);
    size_t file_len = ftell(file);
    fseek(file, 0, SEEK_SET);

    int result = fread(image_array, file_len, 1, file);
    assert(result != 0 && "Issue reading file");

    struct ConstByteSpan image = {
        .data   = image_array,
        .length = file_len,
    };

    fclose(file);
    return image;
}

 

хотелось бы  как то подтянуть bin  в проект и загрузить из него все в массив по аналогии выше в RAM.

Памяти хватает.  Можно ли это как то без лишнмих заморочек сделать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

почему бы просто не проинициализировать image_array данными, без всякого чтения? bin файл в данные можно преобразовать программкой xxd с опцией -i

Изменено пользователем gridinp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/13/2023 at 12:26 PM, gridinp said:

почему бы просто не проинициализировать image_array данными, без всякого чтения? bin файл в данные можно преобразовать программкой xxd с опцией -i

 

там 140 кб,   это не много? Вы имеете в виду конвертнуть вашей программой в массив текстового вида  и просто скопировать в программу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно даже без стороннего софта: https://github.com/graphitemaster/incbin Из всего репозитория нужен один заголовочный файл incbin.h, у себя в коде:

#include "incbin.h"
INCBIN(image, "image.bin");

Что сделает доступными переменные:

const unsigned char g_imageData[]; // указатель на данные файла
const unsigned int g_imageSize;    // размер файла

Посмотрите справку, там ещё настройки (типы, стили имён, префиксы, суффиксы) можно дефайнами менять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 13.12.2023 в 14:33, spirit_1 сказал:

там 140 кб,   это не много? Вы имеете в виду конвертнуть вашей программой в массив текстового вида  и просто скопировать в программу?

ну да, можно засунуть в отдельный файл, так обычно ресурсы и делают, тот же qt, правда они zip-уют

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/13/2023 at 12:37 PM, gridinp said:

ну да, можно засунуть в отдельный файл, так обычно ресурсы и делают, тот же qt, правда они zip-уют

нашел онлайн, сделал из моего файла массив , попробую всунуть в редактор

https://notisrac.github.io/FileToCArray/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 13.12.2023 в 18:56, spirit_1 сказал:

попробую всунуть в редактор

Зачем мучить редактор, если incbin.h даёт тот же самый результат с меньшими усилиями (не нужно переводить файла в текст, копировать его из браузера)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/13/2023 at 1:44 PM, arhiv6 said:

Зачем мучить редактор, если incbin.h даёт тот же самый результат с меньшими усилиями (не нужно переводить файла в текст, копировать его из браузера)?

ваш вариант безусловно лучше и правильнее , но я пока на быструю хочу проабгрэйтить фирмвэр .  Если все пройдет как надо то для постоянки безусловно добавлю ваш вариант

скажет так очень быстро)   скопировал , вставил и запустил . 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...