ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
70759 Топик полностью
VVB (04.10.2006 21:10, просмотров: 1) ответил AlexandrY на Вот, демопроект uCOS на ARM. С успехом работают и THUMB и ARM функции.
Спасибо, гляну. Как осуществляется переключение ARM/THUMB? Имеется в виду высокоуровневое. Как вариант: для всего проекта устанавливается опция THUMB (или ARM). И вы утверждаете, что проект без изменения кода будет работоспособен? И все сервисы uCOS будут доступны? (например, OS_ENTER_CRITICAL и OS_EXIT_CRITICAL написаны на ассемблере и откомпилированы во всех портах для режима ARM, это значит, что их вызов из программы на Си приведёт к сбою, если программа будет откомпилирована для THUMB). Я допускаю мысль, что компилятор и/или линкер может знать о том, что из THUMB кода вызывается часть ARM кода, и компилятор автоматически вставляет необходимые процедуры перехода между режимами. Однако в среде MULTI2000 v4.02, которую я использую, таких фич нет (при смешивании ассемблера и Си). Надо осуществлять ручное переключение, т.е. нельзя просто "поставить галку THUMB" -- необходимо изменение исходных файлов проекта. Никаких модификаторов функций, определяющих режим её работы, я не знаю.