Как я могу сегментировать мое приложение Palm OS 68K?
Если у вас есть приложение 68K, написанное с использованием CodeWarrior для Palm OS, как вы назначаете отдельные функции различным сегментам, не перемещая файлы вручную на вкладке сегментов в IDE?
2 ответа
Я использую #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, поскольку они совместно используют код, связанный с сегментацией.