Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CLASS-ы в Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Massaew
Здравствуйте.
Я работаю с С167, среда разработки Keil uVision3.

Когда компилирую проект в Keil линкер выдает ошибку:
WARNING L22: CLASS RANGE NOT GIVEN IN INVOCATION LINE
CLASS: NCODE
Понятно - не указан диапазон адресов для класса NCODE. Как указать я разобрался,
но возник другой вопрос - для чего он (класс) используется? Чем он отличается от FCODE например?

В документации нашел информацию как указывать диапазоны адресов для
различных классов, но для чего они, в каком случае использовать те или иные?
Какие нюансы?
Massaew
Господа, я понимаю, может быть вопрос тупой!

Но мне ни как не разобраться самому, затык какой-то!

Пните в нужном направлении хотя бы, а дальше я и сам. Так сказать придайте начальное ускорение!
Сергей Борщ
Цитата(Massaew @ Sep 6 2007, 10:51) *
Пните в нужном направлении хотя бы, а дальше я и сам. Так сказать придайте начальное ускорение!
Ну раз никто не отвечает, как в "Что? Где? Когда?": попробую предположить, что это аналоги понятия "сегмент" в других компиляторах. По названиям похоже - NCODE = near code, FCODE = far code. Т.е. вы компилятору указываете в какой класс (сегмент) поместить функцию, а линкер все функции (или данные) одного класса собирает вместе и размещает в адресах, которые ему заданы для этого класса. Нужно, например, если у вас есть внутренняя и внешняя память данных (причем внешняя на батарейках) - чтобы вы могли указать какие из переменных где размещать. В случае кода можно предположить, что для косвенного вызова функций из ближнего кода достаточно более короткого указателя, возможно еще какие-то тонкости.
Massaew
Благодарю!
Вы выполнили функцию сторожевого таймера, кот. сбросил зависшую программу.
smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.