Keil создает hex с адреса 0х800 (Си, АТ89С2051) [ Решено! ]

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Nijka
Встал на лапы
Сообщения: 96
Зарегистрирован: Ср сен 20, 2017 22:49:53

Keil создает hex с адреса 0х800 (Си, АТ89С2051) [ Решено! ]

Сообщение Nijka »

Здравствуйте. Простая программа на Си (любая). Получаю для АТ89С2051 ошибку error L107: address space overflow.
Устранить ошибку и получить нех-файл можно, если взять контроллер с бОльшим объемом памяти. При этом код программы размещается с адреса 0х800 , а по нулевому адресу стоит переход на 0х800. Далее до 0х800 пусто. Даже для программы размером несколько байт нех-файл создается размером 3 кБ.

Подскажите, как настроить проект в Keil, чтобы генерируемый код размещался с начала памяти?
Последний раз редактировалось Nijka Пт мар 29, 2024 10:15:26, всего редактировалось 1 раз.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Keil создает hex с адреса 0х800 (Си, АТ89С2051)

Сообщение BOB51 »

Си для АТ89С2051?...
Там и ассемблера вполне хватит.
8)
Ежли уж Си, то почитаем настройки как IDE, так и компилятора насчет минимального комплекта *. h файлов описания ресурсов МК.
:roll:
Реклама
Nijka
Встал на лапы
Сообщения: 96
Зарегистрирован: Ср сен 20, 2017 22:49:53

Re: Keil создает hex с адреса 0х800 (Си, АТ89С2051)

Сообщение Nijka »

[uquote="BOB51",url="/forum/viewtopic.php?p=4561046#p4561046"]... почитаем настройки как IDE, так и компилятора насчет минимального комплекта *. h файлов описания ресурсов МК.[/uquote]
Спасибо за быстрый отклик. Судя по Вашему ответу, причину моей проблемы Вы знаете. Был бы признателен за ссылку или более конкретную информацию.
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Keil создает hex с адреса 0х800 (Си, АТ89С2051)

Сообщение veso74 »

Keil -> development development tools without a current product license run as a Lite/Evaluation edition and have the following restrictions.

C51 Evaluation Tools
...
Programs start at offset 0x0800. Programs generated with the evaluation software may not be programmed into single-chip devices with less than 2 Kbytes of on-chip ROM.
Программы начинаются со смещения 0x0800. Программы, созданные с помощью оценочного программного обеспечения, не могут быть запрограммированы в однокристальные устройства с объемом встроенного ПЗУ менее 2 Кбайт.
https://www2.keil.com/limits
Реклама
Эиком - электронные компоненты и радиодетали
Nijka
Встал на лапы
Сообщения: 96
Зарегистрирован: Ср сен 20, 2017 22:49:53

Re: Keil создает hex с адреса 0х800 (Си, АТ89С2051)

Сообщение Nijka »

[uquote="veso74",url="/forum/viewtopic.php?p=4561125#p4561125"]https://www2.keil.com/limits[/uquote]
Искренне благодарен. Ссылка недоступна, но из текста все понятно.
Помимо заявленного ограничения по размеру кода, Evaluation edition "сдвигает" код в памяти на 2кБ. Это недоразумение можно исправить известным способом. Такие подозрения были, но вводил в заблуждение старинный код на ассемблере, который компилятор почему-то располагал в памяти как и надо, с 0х0000. Вдобавок еще Proteus работал с 3-килобайтным hex-файлом для АТ89С2051, нисколько не смущаясь.
Еще раз спасибо, друг!
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15556
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Keil создает hex с адреса 0х800 (Си, АТ89С2051) [ Решено

Сообщение BOB51 »

Как вариант альтернативы кейлу относительно MCS51
https://sunduk.radiokot.ru/view/?id=1690871999
и SDCC
https://sunduk.radiokot.ru/view/?id=1690872411
Относительно ассемблера можно и атмелевским c51asm пользоваться - отличная штука.
8)
Реклама
santos29
Родился
Сообщения: 9
Зарегистрирован: Вс май 14, 2017 14:49:50

Re: Keil создает hex с адреса 0х800 (Си, АТ89С2051) [ Решено

Сообщение santos29 »

Крякнутый или зарегестрированный Keil создает hex с адреса 0х000
Ответить

Вернуться в «Разные вопросы по МК»