Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 13.03.2011, 14:14  
kazusdoc
Частый гость
 
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
kazusdoc на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

Сообщение от OlegNZH
а почему? всё равно?
потому что не важно, где находится сам обработчик - ведь вызов происходит аппаратно, т.е. важно лишь правильно расположить ljmp xx в нужных ячейках. Короче С-код трогать не надо - а в asm-файле налепить CSEG AT 00ххH и org и скормить компоновщику....
Реклама:
kazusdoc вне форума  
Непрочитано 13.03.2011, 14:19  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

ВОТ! Вот и я про это - ручками!!!Но автоматизации- никакой!
тут интересная дискуссия была, старо правда...но на безрыбье..
http://forum.ru-board.com:9000/topic...=22728&start=0

Последний раз редактировалось OlegNZH; 13.03.2011 в 14:29.
OlegNZH вне форума  
Непрочитано 13.03.2011, 14:28  
kazusdoc
Частый гость
 
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
kazusdoc на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

да хрен с ней с автоматизацией - беда в другом ... весь код на ассемблере полностью рабочий, а переделка на С пока добавляет больше проблем, чем их решений
kazusdoc вне форума  
Непрочитано 13.03.2011, 14:30  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

Ну вы блин даёте...
Декларация, как обычно в хидере. Имя подпрограммы по правилам Си, а дальше #ASM или #include
omercury вне форума  
Непрочитано 13.03.2011, 14:37  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

И куда она синклюдит?В хвосте- самое место...или ещё куда ...( в кейле - #pragma asm endasm) inсlude - хрен вставит, на нужное место (вставит-то где поставили, но не вектор)

Последний раз редактировалось OlegNZH; 13.03.2011 в 14:50.
OlegNZH вне форума  
Непрочитано 13.03.2011, 14:38  
kazusdoc
Частый гость
 
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
kazusdoc на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

Сообщение от omercury
Декларация, как обычно в хидере. Имя подпрограммы по правилам Си, а дальше #ASM или #include
asm-обработчик прерывания будет правильно работать даже, если С-программа не знает о его существовании - вызов происходит аппаратно, а не программно.
kazusdoc вне форума  
Непрочитано 15.03.2011, 01:31  
kazusdoc
Частый гость
 
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
kazusdoc на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

Дальнейшие поиски привели на сайт Keil. Для всякого "самоуправства" можно применить следующий подход. Создаем проект с С и asm файлами.В С-файле основная логика, в asm - обработчики прерываний и другие подпрограммы, критичные к времени исполнения. Далее копируем в папку с проектом из папки C51\LIB два файла - init.a51 и startup.a51. Урезаем их содержимое до необходимого минимума и подключаем к проекту. После описанных действий в вашем коде будет гораздо меньше всякого хлама ....
Чтобы склеить все это лезем в свойства проекта на вкладку BL51 Locate и в строке code пишем где размещаться сегментам ....

PS может это кому-нибудь поможет меньше наступать на грабли, а для меня, очевидно, их еще будет предостаточно
kazusdoc вне форума  
Непрочитано 15.03.2011, 08:39  
OlegNZH
Почётный гражданин KAZUS.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

Чем ненавистны такие рюшечки- вместо того, чтобы заниматься основной целью- отлаживать Логику Программы , приходится заниматься программированием- ради программирования ... что-то куда-то втыкать ..склеивать , а потом ждать - что-же линк вычудит... как Изделие будет работать- уже вторично.. как-то ...хм (глупо- обижу может кого) ....нелогично для эмбеддера, которому заказ требуется отдавать. ;(
OlegNZH вне форума  
Непрочитано 15.03.2011, 10:16  
kazusdoc
Частый гость
 
Регистрация: 23.05.2009
Сообщений: 46
Сказал спасибо: 1
Сказали Спасибо 4 раз(а) в 2 сообщении(ях)
kazusdoc на пути к лучшему
По умолчанию Re: Keil С51 - связка asm и С кода

Сообщение от OlegNZH
Чем ненавистны такие рюшечки- вместо того, чтобы заниматься основной целью- отлаживать Логику Программы , приходится заниматься программированием- ради программирования ... что-то куда-то втыкать ..склеивать , а потом ждать - что-же линк вычудит...
все начинается с того, что в отлаженный код, который исправно работает, надо что-то добавить. Если переписать всю логику на С, то в данный дивайс код не влезет и едва-ли будет работать с теми характеристиками, как раньше. На ассемблере все сделать гораздо проще и удобней, но вот вспоминать все "нюансы" спустя даже пару месяцев - уже тяжело. Хотя С и кроссплатформенный, но вот для каждого, проца ввиду особенностей последнего, эффективность кода весьма различна.
Сообщение от OlegNZH
... как Изделие будет работать- уже вторично..
изделие прекрасно работает и менять его заказчик не хочет. Собственно все "извращения" начались после просмотра листинга С-компилятора. Прерывания и другие критичные по времени участки программы, которые написаны на ассемблере - работают с запасом. На С такое уже не прокатит - компилятор заботливо вставляет столько хлама, что время исполнения увеличивается раза в 2 .... и больше
Собственно как еще один вариант - пишем все на С, потом чистим промежуточный *asm-файл и далее линкуем его, то же из разряда "фокусов"
kazusdoc вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:25.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot