А я как-то "без спешки" - это ж "дальняя перспектива", а не черезвычайка по полному исчезновению того, что стабильно работает. Прикидка как и чего может потребоваться при очередном поколении "смены операционки". Тем более, что особо и спешить-то некуда...
Первичная проба прикошачить имеющиеся проекты под кейл дала некоторый негатив... У меня ведь подборка компилятороы с практически единой системой синтаксиса и директив... А тут сходу всплывают "неприятности". 1. путь в include у "типовых" ограничивается указанием подпапки в пределах текущего проекта у кейла надо указывать полный путь начиная с буквы дисковода; 2. ПРОТУПИЛ На сегодня более подходящей по стилю к тому, что я использую можно считать MCU8051IDE, хотя и там есть отличия - несколько иной вариант написания формата данных (вопрос равноценности 0х0000 или 0000h). Кейл более заточен на применение ассемблера в "смешанных проектах" (ассемблер и Си) - оттого и специфика для "изоляции" и свободы перемещения/компоновки кода с проистекающими особенностями. Хорошая штука, но при использовании нескольких разнотипных семейств с компиляторами иных производителей все же головняка больше... Вечная проблема компиляторов от разных фирм.
Последний раз редактировалось BOB51 Чт ноя 29, 2018 13:28:36, всего редактировалось 2 раз(а).
у кейла надо указывать полный путь начиная с буквы дисковода
не надо:
Цитата:
When the assembler processes an include file, the current path is searched for the file first. If the file is not found, the assembler then searches the default assembler include folder (\KEIL\C51\A51). If the file is still not found, the assembler finally searches the paths specified by the INCDIR directive. The order in which paths are searched is the order in which the paths are specified with the INCDIR directive.
переводчик
Цитата:
Когда ассемблер обрабатывает включенный файл, текущий путь сначала ищет файл. Если файл не найден, ассемблер затем выполняет поиск по умолчанию ассемблера include folder (\ KEIL \ C51 \ A51). Если файл все еще не найден, ассемблер, наконец, ищет пути, указанные в директиве INCDIR. Порядок поиска путей - это порядок, в котором пути указаны с помощью директивы INCDIR.
BOB51, ты ручками что ли прописываешь пути ? Однако ж у тебя весьма серьезные пробелы в разработке.
Что само прописанные, что в опциях проекта - пути все относительные. К примеру
Код:
#include "./Public/CH554.H"
EQU есть в 51 асме не ври. Однако его использование обычно бездумное , особенно пЫководами,
Читай лучше справку а не выкладывай свои надумки.
Код:
EQU Assembler Statement Arguments symbol EQU expression
Description The EQU statement creates a new symbol named symbol with the value of the expression. Symbols created with EQU may not be redefined. The expression may be a register name (A, R0-R7) or a simple relocatable expression with no forward references.
Symbols defined with EQU may be used anywhere in operands, addresses, or expressions. Symbols defined as registers may be used anywhere a register is allowed.
If a symbol defined with EQU is made PUBLIC, the expression must evaluate to a constant. Exported symbols include a name and a value but may not include fix-up methods.
See Also LIT, PUBLIC, SET, USING
Example VAL EQU 45+3 ; Simple definition PUBLIC VAL ; Public definition
REG1 EQU R1 ; Register symbol definition VAR EQU PUTCHAR ; Relocatable symbol definition
УПС... А в справке то два раздела референса... До нижнего и не докапывал ... подпортивши настроение на первом разделе (а об игре в перемене мест расположения после того и совсем подумать не замыслил) ... ТЬХУ!!! То я ужжшш совсем в рассторйстве... Ладныть... будем отлавливать порядковость размещения элементов в записях с EQU... да матюкать старую бумажну доку. За относительные пути это вроде предварительного "./"? В том варианте, чем пользуюсь достаточно просто папку с файлом обозвать без подобного префикса. Но поскольку и папки и файлы у меня в одной сборке указываю на локальный поиск, а не на поиск по всем каталогам относительно того примера вот такой вид:
BOB51 , нормально это делать в опция компилятора, вкладки С51 и A51 - Include path ...
Локальный поиск это именно
Код:
"./Public/CH554.H"
Поиск в папках компилятора
Код:
<stdio.h>
Код:
"./"
означает корневую папку проекта.
Вопрос- эти вещи азы и ни как не кайлозависимые , как ты вообще без эти знаний работаешь? Тебе надо срочно изучить - основы компиляции и построения структуры проекта...
Справка на кайл весьма обширная - и на сам IDE и на компиляторы и на линкер и т.д. и т.п.
Кстати я тебе ссылку давал на книгу Магда, ты хоть скачал ее?
Да воть.. не довелось до такого докапываться... Кейл с с51asm в простых вариантах совпадает (за небольшим различием), а вот в сложных... УВЫ. Как результат - более сложный проект в своей основе придется полностью переписывать. Да еще и "вылет с ошибкой исполнения программы" на ПК с пентиум III при отсутствии такового на более поздних пеньках. Положил "к ознакомлению" по мере потребности.
Возможности у с51asm таки побольше... А насчет "правильности" - в каждом компиляторе свои правила. Воть такой случай к примеру: Есть штук 8 регистров в ОЗУ это временный буфер, используемый разными подпрограммами. (это аналогия микрочиповского udata_ovr) У каждой подпрограммы свои имена для соответствующих ячеек при одном и том же имени секции... в основной мы его отметим как
которая в принципе хотя бы частично данный вопрос решает... А у Кейла? Вот и "первый ком" - так что внимательно смотреть надо. В то же время практика приходит с очередным проектом... вопрос времени.
Воть и я за то... Странно как-то. Небольшая прожка после легкой "косметики" прекрасно скомпилировалась (там суммарный код порядка 500байт что по атмелю, что по кейлу), а попытался биос котуинки так же "прилизать" и в ответ - "вылет"... При том, что атмель даже вармингов не дает... Правда результат там 1629 байт по атмелю... А там дабы обойти #define надо довольно значительные переделки соорудить. Вобщем... бум по мере возможностей дубль - проект "в рамках Кейла" шкарябать... Интересно таки определить от чего такой "вылет" скукожился...
Воть исчерпаю запас возможностей, да поближе к адуринье пригляжусь - тогда и попробовать можно будет. Я ж по мере "подручно-тренировочных задач" в компиляторах копаюсь. А тех задач все меньше...
Попала в лапы WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E)... http://img.radiokot.ru/files/20529/1kpdh1aayt.JPG Поставил в адуринью заготовки для тех платок.. а наборчик для ESP уже новый... 2.5.0-beta2... ох там и полей для настроек к ESPшкам... Ели сообразил чего натыкать... дабы хош простейший тестик запустить...
Кстати стоило только покопаться в инете - попался проектик с перестраиваемыми параметрами конфигурации (частота, напружка и прочие) https://github.com/MCUdude/MiniCore#boa ... stallation (заменил на ссыль по первоисточнику, жаль на инглиш... но мой комп чегось иногда на предыдущем варианте в "ступор" входил - может старая ХР тот сайт не переваривает, может еще чего - первоисточник заметно надежнее). пока поставил на перепроверку также и как ардуино-ISP программатор вот отсюда - https://www.arduino.cc/en/Tutorial/ArduinoISP http://voltom.ru/project/95-podklyuchen ... grammatora результаты проверок/испытаний будут после проведения таковых.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения