vik_ck 0 22 ноября, 2009 Опубликовано 22 ноября, 2009 · Жалоба Смешанные модели памяти в SiLabs IDE+Keil Имеется большой проект в LARGE (задано в опциях проекта, вкладка C-compiller) Нужно к нему добавить 1 файл в модели SMALL (прерывания по Timer4) #pragma small дает ошибку, т.к. конфликт с general настройками Поменять весь проект на small - нельзя, т.к. "чужие" файлы используют библиотеки в модели large Что посоветуете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silabs 0 22 ноября, 2009 Опубликовано 22 ноября, 2009 · Жалоба Смешанные модели памяти в SiLabs IDE+Keil Поменять весь проект на small - нельзя, т.к. "чужие" файлы используют библиотеки в модели large Использовать 2 проекта: 1) (LARGE)основной: исключить из компиляции С-файл, но добавить OBJ 2) (SMALL)только копиляции без Link, полученный OBJ использовать в 1 проекте Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik_ck 0 22 ноября, 2009 Опубликовано 22 ноября, 2009 · Жалоба Использовать 2 проекта: 1) (LARGE)основной: исключить из компиляции С-файл, но добавить OBJ 2) (SMALL)только копиляции без Link, полученный OBJ использовать в 1 проекте А все сделать в одном проекте можно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба Выход есть. Можно создать *.bat файл и заставить кейл работать через него. Можно попробовать разобраться в конфликтах. Сдается мне что компилятор обрабатывает файлы нормально (хотя может я и не прав). У меня две модели не конфликтовали. Ошибка возникает на этапе линковки. Если идея верная то конфликт из-за использования глобальных переменных. В модели LARGE они по умолчанию располагаются в XDATA? в модели SMALL в DATA (IDATA). Вот линкер и не может их увязать. Советую попробовать при объявлении глобальных переменных жестко указать тип памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silabs 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 · Жалоба Можно создать *.bat файл и заставить кейл работать через него. хороший вариант Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
silabs 0 23 ноября, 2009 Опубликовано 23 ноября, 2009 (изменено) · Жалоба Смешанные модели памяти в SiLabs IDE+Keil #pragma small дает ошибку, т.к. конфликт с general настройками можно попробовать: void TIMER3_ISR (void) small interrupt 14 Результат компиляции меняется: data=?? xdata=?? code=???? Изменено 23 ноября, 2009 пользователем c8051 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться