Здравствуйте. Простая программа на Си (любая). Получаю для АТ89С2051 ошибку error L107: address space overflow. Устранить ошибку и получить нех-файл можно, если взять контроллер с бОльшим объемом памяти. При этом код программы размещается с адреса 0х800 , а по нулевому адресу стоит переход на 0х800. Далее до 0х800 пусто. Даже для программы размером несколько байт нех-файл создается размером 3 кБ.
Подскажите, как настроить проект в Keil, чтобы генерируемый код размещался с начала памяти?
Последний раз редактировалось Nijka Пт мар 29, 2024 10:15:26, всего редактировалось 1 раз.
Си для АТ89С2051?... Там и ассемблера вполне хватит. Ежли уж Си, то почитаем настройки как IDE, так и компилятора насчет минимального комплекта *. h файлов описания ресурсов МК.
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 Кбайт.
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Искренне благодарен. Ссылка недоступна, но из текста все понятно. Помимо заявленного ограничения по размеру кода, Evaluation edition "сдвигает" код в памяти на 2кБ. Это недоразумение можно исправить известным способом. Такие подозрения были, но вводил в заблуждение старинный код на ассемблере, который компилятор почему-то располагал в памяти как и надо, с 0х0000. Вдобавок еще Proteus работал с 3-килобайтным hex-файлом для АТ89С2051, нисколько не смущаясь. Еще раз спасибо, друг!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения