ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
52073 Топик полностью
Беня (24.02.2006 14:36, просмотров: 1) ответил Bill на Ну, во-первых, можно посмотреть в листинге модуля. Компилятор выдает информацию об этом. А самое главное,
Ответ: Обычно я все конфигурирую (размеры стеков и т. д.), используя диалог - ставлю галочку Configure system using dialogs (not in .XCL file). А вот, оказывается, если использовать XCL-файл, например, LNK3S.XCL, то там есть одна опция, которая по умолчанию закомментирована. /* * Data stack * * The data stack is used for auto variables, function parameters and * temporary storage. It is therefore important that the size of the data * stack is large enough. However, a too large stack will waste valuable * RAM space. To determine approximately how much data stack that is needed * for an application, perform a trial link with the list file option 'o' * present, e.g. -xmos. This will tell xlink to generate a stack usage tree * in the map file. The values in the map file could then be used as an * approximation. Please note that the given value does not include stack * used by interrupts and assembler functions written by the end-user. It is * therefore neccesary to add a small safety margin to the value given by * xlink. */ Вот только, чтобы эту опцию задействовать, приходится использовать XCL-файл - тогда линкер делает выходной файл с информацией о дереве вызова всех функций и о размере локальных переменных. Я вот никак не смог найти, как бы эту опцию указать, чтобы при этом использовать диалог, а не XCL-файл. Вот для компилятора есть пункт Additional Compiler Options. А для линкера я не нашел такого пункта, где бы я мог задать дополнительные опции. Для подсчета стека опции линкеру задавать : слегка через задницу, но: пишешь нужные опции не в LNK3S.XCL, а в src\template\cfg3s.xcl, а в менюшке, чтобы не было ошибки из-за двойного объявления, ставишь options/xlink/list/symbols=none И еще убрать "Segment map". Хотя у меня ИАР АВР 2.28a, может в новом можно и дополнительные опции линкеру задавать.