Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Котуинко

Сообщение dosikus »

Шооо? Опять все не в жилу?
Тебе же срочно надо было работать с 51ыми...
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

А я как-то "без спешки" - это ж "дальняя перспектива",
а не черезвычайка по полному исчезновению того, что стабильно работает.
Прикидка как и чего может потребоваться при очередном поколении "смены операционки".
8)
Тем более, что особо и спешить-то некуда...
:tea:

За валерианку до кайла ВЕЛИКИЙ СПАСИБКО!!!
:beer:
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Первичная проба прикошачить имеющиеся проекты под кейл дала некоторый негатив...
У меня ведь подборка компилятороы с практически единой системой синтаксиса и директив...
А тут сходу всплывают "неприятности".
1. путь в include у "типовых" ограничивается указанием подпапки в пределах текущего проекта
у кейла надо указывать полный путь начиная с буквы дисковода;
2. ПРОТУПИЛ :oops:
На сегодня более подходящей по стилю к тому, что я использую можно считать MCU8051IDE, хотя и там есть отличия - несколько иной вариант написания формата данных (вопрос равноценности 0х0000 или 0000h).
Кейл более заточен на применение ассемблера в "смешанных проектах" (ассемблер и Си) - оттого и специфика для "изоляции" и свободы перемещения/компоновки кода с проистекающими особенностями.
Хорошая штука, но при использовании нескольких разнотипных семейств с компиляторами иных производителей все же головняка больше...
Вечная проблема компиляторов от разных фирм.
8)
Последний раз редактировалось BOB51 Чт ноя 29, 2018 13:28:36, всего редактировалось 2 раза.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Котуинко

Сообщение oleg110592 »

у кейла надо указывать полный путь начиная с буквы дисковода
не надо:
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.
http://www.keil.com/support/man/docs/a5 ... nclude.htm
в кейле полностью исключена директива EQU
почитать:
http://www.keil.com/support/man/docs/a51/a51_st_equ.htm
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Котуинко

Сообщение dosikus »

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
 
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

УПС...
А в справке то два раздела референса...
До нижнего и не докапывал ... подпортивши настроение на первом разделе (а об игре в перемене мест расположения после того и совсем подумать не замыслил) ... ТЬХУ!!!
:oops:
То я ужжшш совсем в рассторйстве...
:?
Ладныть... будем отлавливать порядковость размещения элементов в записях с EQU...
да матюкать старую бумажну доку.
:write:
За относительные пути это вроде предварительного "./"?
В том варианте, чем пользуюсь достаточно просто папку с файлом обозвать без подобного префикса.
Но поскольку и папки и файлы у меня в одной сборке указываю на локальный поиск, а не на поиск по всем каталогам
относительно того примера вот такой вид:

Код: Выделить всё

#include (Public/CH554.H)
:roll:
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Котуинко

Сообщение dosikus »

BOB51 , нормально это делать в опция компилятора, вкладки С51 и A51 - Include path ...

Локальный поиск это именно

Код: Выделить всё

 "./Public/CH554.H"
Поиск в папках компилятора

Код: Выделить всё

<stdio.h>
означает корневую папку проекта.

Вопрос- эти вещи азы и ни как не кайлозависимые , как ты вообще без эти знаний работаешь?
Тебе надо срочно изучить - основы компиляции и построения структуры проекта...

Справка на кайл весьма обширная - и на сам IDE и на компиляторы и на линкер и т.д. и т.п.

Кстати я тебе ссылку давал на книгу Магда, ты хоть скачал ее?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

О разнице в поиске в зависимости от обрамляющих скобок я знаю.
Но с таким указанием корневой папки как-то встречаться не приходилось и до сих пор не требовалось...
Тем более в "вывернутом" варианте стандартно ведь

Код: Выделить всё

D:\folder\subfolder\file
и для прямого указания в текущем проекте таки простая скобка (если не лазить в Include path IDE)
вида

Код: Выделить всё

$include (.\librus\dfn_prj.txt)
- вставить файл dfn_prj.txt из папки librus текущего проекта (prj_folder к примеру и есть корневая папка)
вполне себе работает в кейле.
Ранее там было

Код: Выделить всё

$include (prj_folder\librus\dfn_prj.txt)
внутри каталога с размещенным там c51asm.exe
или еще проще, ежли в рамках IDE

Код: Выделить всё

$include <librus\dfn_prj.txt>
в мплабе и

Код: Выделить всё

$include "librus\dfn_prj.txt"
у АВРстудио
и во всех ранее применяемых компиляторах такая трактовка отлично работает...
:roll:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Котуинко

Сообщение ARV »

BOB51, вы же из эпохи MS DOS, как же вы не знаете основы основ?!
.\ - текущая папка
..\ - владеющая текущей папка
и так далее.

например, сейчас мы вот тут: c:\work\prj\asm\my_prj
.\ = c:\work\prj\asm\my_prj
..\ = c:\work\prj\asm
..\..\ = c:\work\prj
..\..\..\ = c:\work

Добавлено after 48 seconds:
слеши в юниксах в одну сторону, в наследниках DOS - в другую. но, по-моему, компиляторы сейчас понимают и так и этак
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Да воть.. не довелось до такого докапываться...
:dont_know:
Кейл с с51asm в простых вариантах совпадает (за небольшим различием), а вот в сложных... УВЫ.
Как результат - более сложный проект в своей основе придется полностью переписывать.
Да еще и "вылет с ошибкой исполнения программы" на ПК с пентиум III при отсутствии такового на более поздних пеньках.
Положил "к ознакомлению" по мере потребности.
:roll:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Котуинко

Сообщение dosikus »

[uquote="BOB51",url="/forum/viewtopic.php?p=3516274#p3516274"]а вот в сложных... УВЫ.[/uquote]

Что мешало изначально писать правильно?
Я тебе уже говорил - у тебя мешанина и каша а не проекты...
Про модульность и абстракции , не слышал не ...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Возможности у с51asm таки побольше...
А насчет "правильности" - в каждом компиляторе свои правила.
8)
Воть такой случай к примеру:
Есть штук 8 регистров в ОЗУ
это временный буфер, используемый разными подпрограммами.
(это аналогия микрочиповского udata_ovr)
У каждой подпрограммы свои имена для соответствующих ячеек при одном и том же имени секции...
в основной мы его отметим как

Код: Выделить всё

tmp  dseg
tmp0: ds1
tmp1: ds1
tmp2: ds1
tmp3: ds1
tmp4: ds1
tmp5: ds1
tmp6: ds1
tmp7: ds1
А вот далее...
у атмеля имеется директива .define

Код: Выделить всё

.define cnt0 tmp0
.define data2 tmp2
которая в принципе хотя бы частично данный вопрос решает...
А у Кейла?
:dont_know:
Вот и "первый ком" - так что внимательно смотреть надо.
В то же время практика приходит с очередным проектом... вопрос времени.
:roll:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Котуинко

Сообщение dosikus »

#define

http://www.keil.com/support/man/docs/a51/a51_define.htm

И вообще -посмотри как оформляются программы а не бред с авр...

http://infocenter.arm.com/help/index.js ... amples.htm
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Так я именно слеш и ставил....
:(
в результате получаю "выкидыш":

A51 ASSEMBLER - обнаружена ошибка. Приложение будет
закрыто. Приносим извинения за неудобства.
Подпись ошибки
AppName: a51.exe AppVer: 8.2.3.1 ModName: a51.exe
ModVer: 8.2.3.1 Offset:00007150

Причем "вынос" на любом ПК...
:dont_know:
Воть посему и "отложено до выяснения"
:evil:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Котуинко

Сообщение dosikus »

У меня даже на Dell Latitude c650 что пень 3й , кайло ни разу не вылетало ...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Воть и я за то... Странно как-то.
Небольшая прожка после легкой "косметики" прекрасно скомпилировалась (там суммарный код порядка 500байт что по атмелю, что по кейлу), а попытался биос котуинки так же "прилизать" и в ответ - "вылет"... При том, что атмель даже вармингов не дает... Правда результат там 1629 байт по атмелю...
А там дабы обойти #define надо довольно значительные переделки соорудить.
Вобщем... бум по мере возможностей дубль - проект "в рамках Кейла" шкарябать...
Интересно таки определить от чего такой "вылет" скукожился...
:roll:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Котуинко

Сообщение dosikus »

Пора на Си переходить...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Воть исчерпаю запас возможностей, да поближе к адуринье пригляжусь - тогда и попробовать можно будет.
:roll:
Я ж по мере "подручно-тренировочных задач" в компиляторах копаюсь.
:tea:
А тех задач все меньше...
:(
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Появилась новая версия ардуино IDE 1.8.8
...
:roll:

Попала в лапы WeMos D1 Wi-Fi UNO (ESP8266 ESP-12E)...
http://img.radiokot.ru/files/20529/1kpdh1aayt.JPG
Поставил в адуринью заготовки для тех платок.. а наборчик для ESP уже новый... 2.5.0-beta2...
ох там и полей для настроек к ESPшкам... Ели сообразил чего натыкать... дабы хош простейший тестик запустить...
:(
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15573
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Котуинко

Сообщение BOB51 »

Кстати стоило только покопаться в инете - попался проектик с перестраиваемыми параметрами конфигурации (частота, напружка и прочие)
https://github.com/MCUdude/MiniCore#boa ... stallation
(заменил на ссыль по первоисточнику, жаль на инглиш...
но мой комп чегось иногда на предыдущем варианте в "ступор" входил - может старая ХР тот сайт не переваривает, может еще чего - первоисточник заметно надежнее).
пока поставил на перепроверку также и как ардуино-ISP программатор вот отсюда
-
https://www.arduino.cc/en/Tutorial/ArduinoISP
http://voltom.ru/project/95-podklyuchen ... grammatora
результаты проверок/испытаний будут после проведения таковых.
:beer:
Ответить

Вернуться в «Разные вопросы по МК»