Я разделил программное обеспечение на две части: загрузчик (без RTX), образ приложения с RTX. Но загрузчик не смог загрузить изображение приложения с помощью RTX. настройки срабатывания вспышки является:IAP Bootloader не смог загрузить изображение приложения RTX
-------------------------------------------------------------------- start address size IROM 1: 0x08000000 0x2800 - Bootloader (without RTX) IROM 2: 0x08002800 0xD000 - Application Image (with RTX)
У меня есть тест 3 способа: (1) С помощью другого приложения без RTX. Загрузочный загрузчик может загрузить приложение успешно.
(2) Измените приложение с настройкой IROM проекта RTX. Я меняю начальный адрес IROM проекта приложения с 0x08002800 на 0x08000000. И я загружаю изображение приложения в flash с адреса 0x08000000. Изображение может успешно работать с 0x08000000.
(3) Исходный адрес изображения IROM приложения - 0x08002800. После загрузки загрузочного загрузчика и изображения приложения во флэш-память я отлаживаю проект приложения по-умолчанию. Я обнаружил, что существует ошибка «переполнение стека osTimerthread». Затем также перекрывается основной поток потоков. Я попытался увеличить размер стека, но он не работает. Я обнаружил, что приложение запускается при переключении ядра RTX. Все потоки находятся в состоянии ожидания и не работают.
Ps, когда я отлаживаю keil, тестовый элемент (2) также имеет ошибки переполнения стека во время инициализации ядра. Предмет (2) отлично работает до сих пор. Поэтому я просто помещаю любую информацию, необходимую здесь.
Это изображение отладки для элемента (3).
Спасибо. ** (1) ** Мой загрузчик настроил системные часы. Потому что это первая работа в startup.s. И startup.s в приложении также повторно инициализирует его. ** (2) ** И, как и в моем посте, ядро RTX os работает, но оно находится в бесконечных задачах переключения цикла. Все задачи были в состоянии «ГОТОВ», но ядро ОС не могло поместить одного из них в состояние «РАБОТА». Таким образом, не было шансов называться основным и пользовательским потоками. –