реклама на сайте
подробности

 
 
> CLASS-ы в Keil, Как их использовать?
Massaew
сообщение Sep 4 2007, 06:49
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 25-05-07
Из: СПб
Пользователь №: 27 967



Здравствуйте.
Я работаю с С167, среда разработки Keil uVision3.

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

В документации нашел информацию как указывать диапазоны адресов для
различных классов, но для чего они, в каком случае использовать те или иные?
Какие нюансы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Massaew
сообщение Sep 6 2007, 07:51
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 25-05-07
Из: СПб
Пользователь №: 27 967



Господа, я понимаю, может быть вопрос тупой!

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

Пните в нужном направлении хотя бы, а дальше я и сам. Так сказать придайте начальное ускорение!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 6 2007, 14:30
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Massaew
сообщение Sep 11 2007, 07:16
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 25-05-07
Из: СПб
Пользователь №: 27 967



Благодарю!
Вы выполнили функцию сторожевого таймера, кот. сбросил зависшую программу.
smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016