• v1.1 043359fe66

    Razvalyaev released this 2025-07-17 11:02:34 +03:00 | 9 commits to master since this release

    Библиотека

    • библиотека .c/.h переписана под универсальные дефайны intX_t uintX_t
    • добавлены комменты к debug_tools.c/.h
    • добавлен пример debug_vars.c
    • фикс перевод float в iq
    • фикс кривых проверок на наличие uint8_t

    Приложение:

    • сделано задание размера короткого имени
    • фикс поиска вручнуб добавленных переменных в debug_vars.c
    • добавлена бета поддержка stm:+
      • парс переменных из файла преокта Keil или makefile CubeIDE
      • запись в utf-8 для STM, вместо cp1251 для TMS
      • другой размер int (32 бита, вместо 16 бит) для STM
    Downloads
  • v1.0 369cfa808c

    Razvalyaev released this 2025-07-15 15:55:52 +03:00 | 14 commits to master since this release

    DebugTools - Просмотр переменных через терминалку

    Модуль состоит из трех файлов:

    • debug_tools.c - реализация считывания переменных
    • debug_tools.h - объявление всякого для считывания переменных
    • debug_vars.c - определение массива считываемых переменных

    Этот модуль предоставляет функциональность для чтения значений переменных во встроенной системе, включая работу с IQ-форматами, защиту доступа и проверку диапазонов памяти.

    Для чтения переменных можно использовать функции:

    int Debug_ReadVar(int var_ind, long *return_long);
    int Debug_ReadVarName(int var_ind, DebugVarName_t name_ptr);
    

    Переменные доступные для чтения определяются в debug_vars.c (их можно прописывать вручную или генерировать через DebugVarEdit):

    // Определение массива с указателями на переменные для отладки
    int DebugVar_Qnt = 5;
    #pragma DATA_SECTION(dbg_vars,".dbgvar_info")
    //																	pointer_type    iq_type			return_iq_type  short_name
    DebugVar_t dbg_vars[] = {\
    {(char *)&freqTerm,                                                 pt_float,       t_iq_none,      t_iq10,         "freqT"              }, \
    {(char *)&ADC_sf[0][0],                                             pt_int16,       t_iq_none,      t_iq_none,      "ADC_sf00"           }, \
    {(char *)&ADC_sf[0][1],                                             pt_int16,       t_iq_none,      t_iq_none,      "ADC_sf01"           }, \
    {(char *)&ADC_sf[0][2],                                             pt_int16,       t_iq_none,      t_iq_none,      "ADC_sf02"           }, \
    {(char *)&ADC_sf[0][3],                                             pt_int16,       t_iq_none,      t_iq_none,      "ADC_sf03"           }, \
    {(char *)&Bender[0].KOhms,                                          pt_uint16,      t_iq,      		t_iq10,      	"Bend0.KOhm"         }, \
    {(char *)&Bender[0].Times,                                          pt_uint16,      t_iq_none,      t_iq_none,      "Bend0.Time"         }, \
    };
    

    DebugVarEdit - Настройка переменных для терминалки

    DebugVarEdit — графическое приложение для Windows, предназначенное для настройки и генерации отладочных переменных (debug_vars.c) на основе исходного C-проекта. Работает с makefile проекта, сохраняет изменения в XML и позволяет удобно редактировать переменные и их типы через интерфейс.

    Программа — один исполняемый файл DebugVarEdit.exe, не требующий установки и дополнительных зависимостей.

    Требуется Windows 7 или новее.


    Как использовать приложение

    1. Запустите DebugVarEdit.exe.

    2. Укажите пути:

      • Путь к XML — новый или существующий файл настроек переменных;
      • Путь к проекту — путь к корню проека (папка, которая является корнем для проекта в Code Composer);
      • Путь к makefile — путь к makefile относительно корня проекта;
      • Путь для debug_vars.c — папка, куда будет сгенерирован файл debug_vars.c с переменными.
    3. Нажмите Сканировать переменные:

      • Программа проанализирует исходники, указанные в makefile, и найдёт все переменные.
      • Результат сохранится в двух XML-файлах:
        • structs.xml — информация обо всех структурах и typedef;
        • <ваш_файл>.xml — список всех найденных переменных.
    4. Нажмите Добавить переменные:

      • В левой таблице отображаются все найденные переменные.
        Для добавления переменной в проект дважды кликните по ней или нажмите кнопку >, чтобы переместить в правую таблицу.
      • В правой таблице находятся переменные, выбранные для использования.
        Чтобы убрать переменную из проекта, переместите её обратно в левую таблицу двойным кликом или кнопкой <.
      • После выбора переменных нажмите Применить, чтобы обновить основной список переменных и включить их в проект.
    5. Настройте параметры выбранных переменных:

      • En — включение или отключение переменной для генерации;
      • Base Type — базовый тип переменной (например, int8, uint16 и т.д.);
      • IQ Type — формат IQ, если применимо;
      • Return Type — формат возвращаемого значения (IQ-тип или целочисленный);
      • Shortname — короткое имя переменной для для терминалки.

      Все параметры выбираются из выпадающих списков, которые можно настроить, чтобы отображались только нужные опции.

    6. Нажмите Сгенерировать файл для создания файла debug_vars.c с выбранными переменными.


    Возможности

    • Загрузка и сохранение настроек переменных в XML-файлах.
    • Автоматическое определение исходных файлов с переменными для удобства работы.
    • Редактирование переменных: включение, короткого имени и типов через удобные списки.
    • Подсветка ошибок при вводе (неправильные имена, слишком длинные короткие имена).
    • Быстрая фильтрация переменных по столбцам.
    • Автоматическая генерация файла debug_vars.c с выбранными переменными.
    • Возможность сразу открыть сгенерированный файл в редакторе.
    • Умное автодополнение имён переменных и полей структур.

    Пример XML-файла

    <project proj_path="C:/myproj" makefile_path="Debug/Makefile" structs_path="debugVars/structs.xml">
      <variables>
        <var name="g_myvar">
          <enable>true</enable>
          <show_var>true</show_var>
          <shortname>myv</shortname>
          <pt_type>pt_float</pt_type>
          <iq_type>t_iq24</iq_type>
          <return_type>t_iq24</return_type>
          <type>float</type>
          <file>Src/main/main.c</file>
          <extern>true</extern>
          <static>false</static>
        </var>
      </variables>
    </project>
    

    Downloads