Как я могу сегментировать свое приложение Palm OS 68K?
-
01-07-2019 - |
Вопрос
Если у вас есть 68-килобайтное приложение, написанное с использованием CodeWarrior для Palm OS, как назначить отдельные функции различным сегментам без ручного перемещения файлов на вкладке сегментов в IDE?
Решение
я использую #pragma segment
.Гораздо проще, чем вкладка сегментов CodeWarrior.
#pragma segment Foo
some code
#pragma segment Bar
some code
Теперь ваш код автоматически помещается в два разных сегмента.
Другие советы
Компоновщики CW 68K поддерживают это, используя файлы .seg, добавленные в ваш проект.
Формат:
{ "<segment_name>" [= <hex>] "<name1>" ... "<namen>" }
"<segname1>" = "<segname2>"
Области, разделенные фигурными скобками, определяют имена сегментов и перечисляют все функции/символы, которые будут присвоены этому сегменту.Необязательное шестнадцатеричное значение (без начального 0x) используется для установки атрибутов сегмента, поэтому оно не будет слишком полезно в Palm OS.Другое обозначение используется для переименования сегмента.Это выглядит полезным для извлечения кода из статической библиотеки, созданной с помощью вызовов «#pragma сегмента».
Этот формат не упоминался в руководствах CodeWarrior, но когда я был в Metrowerks, я проверил исходный код компоновщика 68K и убедился, что он будет работать.Это должно работать как для Mac OS 68K Linker, так и для Palm OS 68K Linker, поскольку они используют общий код, отвечающий за сегментацию.