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

 
 
> не заводится 89c2051
__Alexander
сообщение Jul 18 2007, 10:11
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 18-07-07
Из: Киев
Пользователь №: 29 202



Программа написана в Keil. HEX прошивается. На плате молчит.
Могут ли быть какие-то настройки в Keile или в софте программатора чтобы дать ему не включиться?

По Debug программа работает. (И даже в протеусе rolleyes.gif ).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
__Alexander
сообщение Jul 20 2007, 17:35
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 18-07-07
Из: Киев
Пользователь №: 29 202



Мда ребята, спасибо за советы, но скорее я тут похож совершенно на ламера, если мне рекомендуют правильную обвязку МК, даже включая подтяжку на компаратор. Перед тем как писать программу, я железо проехал по нескольку раз. И все, что вы мне советовали уже было давано припаяно, причем на заводской плате.

А спрашивал я исключительно о софте, то ли программера, то ли кейла. И вот какой должен был быть ответ.

Херня конечно, но в Кейле надо было установить:
Memory Model: Small
Code Rom Size: Small

Но! Вылезла прога за 2К. И пришлось еще в вкладке С51 устанавливать флажки:
Linker Code Packing
Don`t use absolute register accesses

(кто знает подскажите, что происходит при выполнении в регистрах проца при этом)

И вот собссно и все. Прога (чес слово) заработала сразу и на ура!
Вот это все, что я и хотел услышать.


Но, для себя я думаю, прога на 50 строк, где есть один таймер с обработкой по прерыванию, свитч на 8 позиций и обработка одной клавиши, при этой конфигурации кейла занимает 1.8К (при контроллерной памяти в 2К) - это жопа. При написании на ИАРе на 2313 (тоже 2К) у меня намного больше влазило, из это вывод, кейл - гавно (про оптимизацию кода не напоминать). Разве что писать на асме.

P.S. Еще раз спасибо всем ответившим.
P.S.S. Автор темы не забыл что он ее создал wink.gif
P.S.S. P1^x - не канает почему-то, только P1_x.
Go to the top of the page
 
+Quote Post
syoma
сообщение Aug 14 2007, 08:26
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(__Alexander @ Jul 20 2007, 20:35) *
Но, для себя я думаю, прога на 50 строк, где есть один таймер с обработкой по прерыванию, свитч на 8 позиций и обработка одной клавиши, при этой конфигурации кейла занимает 1.8К (при контроллерной памяти в 2К) - это жопа. При написании на ИАРе на 2313 (тоже 2К) у меня намного больше влазило, из это вывод, кейл - гавно (про оптимизацию кода не напоминать). Разве что писать на асме.

ИМХО Вообще-то в Кейле очень неплохая оптимизация. Я наоборот когда с ИАРа в Кейл переводил свои проги то код с 8кб уменьшился до 6кБ. надо только посмотреть какой уровень оптимизации выставлен по умолчанию - там помоему от 0 до 9. Плюс оптимизацию по скорости или по размеру тоже надо выбрать.
Конфигурация кейла, которая линкуется с любой вашей программой всего лишь находится в файле START.A51 если не ошибаюсь - посмотрите его для вашей Small модели - там же ничего нет. Только цикл очистки регистров и оперативной памяти. Все вместе занимает не более 150 байт Кода.
Так что я бы вам посоветовал еще раз прогнать программу в отладчике и в подозрительных местах раскрыть код, чтоб увидеть ассемблерную интерпретацию - и тогда легко можно будет увидеть, где Кейл генерит плохой код и ему надо помочь.
А со временем после нескольких таких проверок сами научитесь писать "легкий" для компилятора код.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 05:01
Рейтинг@Mail.ru


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