Как я могу сегментировать мое приложение 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, поскольку они совместно используют код, связанный с сегментацией.

Другие вопросы по тегам