|
Знатокам Кейла |
|
|
|
Nov 11 2008, 06:06
|

Знающий
   
Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055

|
При компиляции для At89c51rc ( 32 kB flash ) выдает такую ошибку:
Build target 'Target 1' linking... LX51 LINKER/LOCATER V4.17 - SN: ********* COPYRIGHT KEIL ELEKTRONIK GmbH 1995 - 2007 @.\Release\Exe\1 nnnn.lnp ".\Release\Exe\STARTUP.obj", ".\Release\Exe\MAIN.obj" TO ".\Release\Exe\1nnnn" PRINT(".\Release\1 nnnn.map") CLASSES (XDATA (X:0x0-X:0xFF), HDATA (X:0x0-X:0xFF), CODE (C:0x0-C:0x7FFF), CONST (C:0x0-C:0x7FFF), ECODE (C:0x0-C:0x7FFF), HCONST (C:0x0-C:0x7FFF)) *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: XDATA SEGMENT: ?XD?MAIN LENGTH: 000132H ****************************************************************************** * RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 4287H BYTE (831%) * ****************************************************************************** Program Size: data=10.6 xdata=321 const=0 code=17723 *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: XDATA SEGMENT: ?XD?MAIN LENGTH: 000132H *** ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED LIMIT: 0800H BYTES Target not created
Чего ему не хватат - ОЗУ, программной памяти или всего сразу? Или другие причины ( RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 4287H BYTE (831%) *)?
Сообщение отредактировал =L.A.= - Nov 11 2008, 06:08
--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
|
|
|
|
|
 |
Ответов
|
Nov 11 2008, 10:15
|

Знающий
   
Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055

|
Цитата(Палыч @ Nov 11 2008, 10:04)  Во-первых, ему не хватает внешней памяти (xdata). Определено, что её (xdata) всего 256 байт, а только в main требуется 306 (132h) байт. Памяти программ в МК хватает: нужно на всё чуть больше 17К, но версия Keil, та, что Вы используете имеет ограничение на создаваемый код - 2К (это - поддаётся лечению) Видимо, я напрасно поставил галку use on-chip XRAM? Поскольку по доке у At89c51rc 512 байт ОЗУ. А по процессу лечения сообщите поподробнее пжлст. Я пользовался советами ника VAI.
--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
|
|
|
|
|
Nov 11 2008, 11:12
|

Знающий
   
Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055

|
Цитата(Палыч @ Nov 11 2008, 14:00)  Возможно, ограничение на xdata в 256 байт - это тоже ограничение триальной версии... По поводу личения. Увы, я давно не использую Keil для новых проектов, а для поддержки старых - хватает древней версии Keil'а, поэтому плохо ориентируюсь в методах лечения современных версий. Ясно, что с лечением у Вас что-то не получилось... Когда я занимался самолечением для этого использовалась клизьма... В и-нете гуляли клизьмы с тремя цифирьками в конце (обозначение версии): 3хх - для АРМ; 7хх (позже 8хх) - для МК51. С клизьмой поставлась и инструкция по применению - (важно!) перед применением сгенерированной лицензии необходимо подменить указанный в инструкции и поставляемый с клизьмой файл (для Вас - L51.DLL). Результат применения можно проверить, если зайти в Keil'е (надеюсь, у Вас восьмая версия) в Menu->File->License Management - для продукта РК51Prof. Developers Kit должна быть действующая лицензия. Я применял эти рекомендации ( ника VAI ) только не перезапустил компьютер ( в них не указано, но очевидно, это необходимо) Теперь всё компилируется, если убрать галочку Use On chip XRAM (0x00 - 0xFF) Правда не работает. Будем смотреть далее.
--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
|
|
|
|
|
Nov 11 2008, 18:49
|

Знающий
   
Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055

|
Цитата(Палыч @ Nov 11 2008, 15:29)  Какой забавный МК Вы используете. Обратите внимание, что у него 512 байт On-chip RAM, а не 512 байт On-chip XRAM. Надо бы посмотреть DS на предмет: "что сие означает?". Использую этот МК по причине острой необходимости, и считаю его не забавным, а дерьмовым. DS я читал, если XRAM = expanded RAM (ERAM), то непонятно, почему галочка мешает. Правда атмеловские даташиты, прямо скажем, сумбурные. В общем, компилятор вроде зашуршал, а проблемы с неработоспособностью программы я как нибудь осилю  )
--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
|
|
|
|
|
Nov 12 2008, 07:02
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(=L.A.= @ Nov 11 2008, 21:49)  DS я читал, если XRAM = expanded RAM (ERAM), то непонятно, почему галочка мешает. Да, можно считать, что XRAM = expanded RAM (ERAM). Если посмотреть в DS, то размер ERAM равен 256. И Keil тоже так считает: возле галочки написано "Use On-chip XRAM (0x0-0xFF)". А, вот Вы пытаетесь поместить туда гораздо больше - 321 байт (судя по информации в Вашем первом посту). Кстати, у меня с подобной галкой были проблемы. Я считал, что установка этой галки заставит транслятор поместить в startup код устанавливающий бит в регистре, который разрешает использовать дополнительную внутреннюю память командами movx. Однако, ничего подобного не обнаружил. Пришлось startup править руками. Правда, это было давно, может быть, в современных версиях Keil'а это поправили (или я что-то тогда недопонял).
|
|
|
|
|
Nov 12 2008, 11:10
|

Знающий
   
Группа: Участник
Сообщений: 794
Регистрация: 4-09-06
Из: Москва(ЗелАО), РФ
Пользователь №: 20 055

|
Цитата(Палыч @ Nov 12 2008, 10:02)  Да, можно считать, что XRAM = expanded RAM (ERAM). Если посмотреть в DS, то размер ERAM равен 256. И Keil тоже так считает: возле галочки написано "Use On-chip XRAM (0x0-0xFF)". А, вот Вы пытаетесь поместить туда гораздо больше - 321 байт (судя по информации в Вашем первом посту).
Кстати, у меня с подобной галкой были проблемы. Я считал, что установка этой галки заставит транслятор поместить в startup код устанавливающий бит в регистре, который разрешает использовать дополнительную внутреннюю память командами movx. Однако, ничего подобного не обнаружил. Пришлось startup править руками. Правда, это было давно, может быть, в современных версиях Keil'а это поправили (или я что-то тогда недопонял). Да, переменных получается на 321 байт ОЗУ. Большой пасиб за консультацию. Но у меня ощущение, что я этот 89c51rc заброшу и перепишу прогу под ПИК. Чую, окажется быстрее по времени. P.S. А мне Кейл хвалили как наилучший для семейства МК51.... Даже боюсь предположить, как функционируют другие среды.
Сообщение отредактировал =L.A.= - Nov 12 2008, 11:14
--------------------
-Кто-то работает на совесть, а кто-то на других заказчиков.-
|
|
|
|
Сообщений в этой теме
=L.A.= Знатокам Кейла Nov 11 2008, 06:06        Палыч Цитата(=L.A.= @ Nov 12 2008, 14:10) Да, п... Nov 12 2008, 11:51         =L.A.= Цитата(Палыч @ Nov 12 2008, 14:51) Keil -... Nov 13 2008, 14:29          Палыч Цитата(=L.A.= @ Nov 13 2008, 17:29) А вы ... Nov 13 2008, 16:53           =L.A.= Цитата(Палыч @ Nov 13 2008, 19:53)
паси... Nov 13 2008, 21:33            Палыч Цитата(=L.A.= @ Nov 14 2008, 00:33) Попро... Nov 14 2008, 06:35             =L.A.= Цитата(Палыч @ Nov 14 2008, 09:35) Извиня... Nov 14 2008, 06:54              Палыч Цитата(=L.A.= @ Nov 14 2008, 09:54) При т... Nov 14 2008, 07:10               =L.A.= Цитата(Палыч @ Nov 14 2008, 10:10) Это - ... Nov 14 2008, 07:26                Палыч Цитата(=L.A.= @ Nov 14 2008, 10:26) Но, к... Nov 14 2008, 08:24                 =L.A.= Цитата(Палыч @ Nov 14 2008, 11:24) Может ... Nov 25 2008, 08:08                  Andy_ry Цитата(=L.A.= @ Nov 25 2008, 12:08) ... М... Dec 16 2008, 13:58 AndreyS Цитата(=L.A.= @ Nov 11 2008, 09:06) При к... Mar 23 2009, 14:25 Палыч Цитата(AndreyS @ Mar 23 2009, 17:25) Подк... Mar 23 2009, 14:57  AndreyS Цитата(Палыч @ Mar 23 2009, 17:57) Для МК... Mar 23 2009, 18:55
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|