А я как-то "без спешки" - это ж "дальняя перспектива", а не черезвычайка по полному исчезновению того, что стабильно работает. Прикидка как и чего может потребоваться при очередном поколении "смены операционки".
Первичная проба прикошачить имеющиеся проекты под кейл дала некоторый негатив... У меня ведь подборка компилятороы с практически единой системой синтаксиса и директив... А тут сходу всплывают "неприятности". 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.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
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
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
УПС... А в справке то два раздела референса... До нижнего и не докапывал ... подпортивши настроение на первом разделе (а об игре в перемене мест расположения после того и совсем подумать не замыслил) ... ТЬХУ!!!
То я ужжшш совсем в рассторйстве...
Ладныть... будем отлавливать порядковость размещения элементов в записях с 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 результаты проверок/испытаний будут после проведения таковых.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения