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

 
 
6 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Работа с EEPROM STM8 в IAR, Дописываем библиотеки для работы модификатора __eeprom
VladislavS
сообщение Aug 1 2017, 16:34
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Цитата(Эдди @ Aug 1 2017, 19:19) *
Подтверждаю, никаких const писать не надо.

Ну не надо так категорично. const применять надо там где надо, а где не надо - не надо sm.gif
Представьте себе ситуацию, когда программа не влезла во FLASH. Можно попробовать разместить какие-нибудь данные (строки, например) в константных переменных EEPROM. У stm8 доступ на чтение из EEPROM происходит без накладных расходов.

Цитата(Эдди @ Aug 1 2017, 19:19) *
ничего при старте не копируется.

Естественно, и об этом даже написано в документации. Ещё бы её читал кто...

Я вот подумал, у STM8 общее адресное пространство для RAM, FLASH и EEPROM. Из FLASH и RAM код выполняться может, а что мешает его из EEPROM выполнять? Надо попробовать будет sm.gif
Go to the top of the page
 
+Quote Post
juvf
сообщение Aug 1 2017, 17:29
Сообщение #17


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(VladislavS @ Aug 1 2017, 19:09) *
Библиотеки IAR для работы с EEPROM какие-то монстроидные. Прикладываю .map с моего примера. Вроде как 199 байт занимает.
у меня занял stm8s_flash.o 319 ro code и 63 ro data. В библах ассертов куча... всяких условий. если тесно, нужно их переписывать.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Aug 1 2017, 19:00
Сообщение #18


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(VladislavS @ Aug 1 2017, 19:34) *
а что мешает его из EEPROM выполнять?

А смысл? Еепрома же с гулькин нос! Что туда влезет-то? Вот какие-нибудь инициализационные константы вполне можно хранить (в том исходнике, на который я ссылку приводил, я храню в еепроме пары ID-номер для датчиков DS18x20).
Цитата(juvf @ Aug 1 2017, 20:29) *
В библах ассертов куча... всяких условий. если тесно, нужно их переписывать.

Зачем вы вообще этими яровскими штуками пользуетесь? SPL еще припомните...
STM8 же прост как 5 копеек! Бери себе, да пиши безо всяких "библиотек". Я для начала где-то минимальный заголовочный файл содрал (правда, он был для L-серий, а название его я так и не сменил — так и болтается теперь с буквой l, хотя я для l-ек ничего не писал никогда), а потом по мере необходимости пополнял его макросами.
В отличие от ARM'ов этим 8-биткам даже файл-стартап не нужен! Тупо сишные файлы сразу пишешь, потом make && make flash — вуаля!
Go to the top of the page
 
+Quote Post
juvf
сообщение Aug 1 2017, 19:48
Сообщение #19


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(Эдди @ Aug 2 2017, 00:00) *
Зачем вы вообще этими яровскими штуками пользуетесь? SPL еще припомните...
я его и имею в виду. библы - это SPL и есть. в библах куча ассертов
Цитата
STM8 же прост как 5 копеек! Бери себе, да пиши безо всяких "библиотек".
С библиотеками быстрее и безопаснее.... берёшь спл... вызываешь UART_Init().... где указываешь в аргументах все настройки,.... махом подыматеся уарт.... без задро очень частых и длительных возвратно-поступательных движений с даташитом,.... Да, UART_Init() универсальный и тяжелый.... если хватает места - забыть про него, пусть живет. Если всё таки не влез, то я заметил, что UART_Init изменяет всего 3 регистра. Для верности чиркнул зрачком по исходнику UART_Init(), и заменил вызов UART_Init() на 3 строчки кода. вот и весь инит, вот и помощь от спл.

ps да ещё и без спл легче себе в ногу стрельнуть.


Цитата(Эдди @ Aug 2 2017, 00:00) *
В отличие от ARM'ов этим 8-биткам даже файл-стартап не нужен! Тупо сишные файлы сразу пишешь, потом make && make flash — вуаля!
Мне не нравится "обвес".... т.е. всякие стартапы, cppinit-ы и т.п. 1400 байт флеша отьели.

dlstm8mmn.a: [4]
cexit.o 10
char.o 26
cppinit.o 210 2 11
cstartup.o 34
dc_util.o 44
exit.o 4
far.o 10
far_util.o 56
init.o 30
init_small.o 70
interrupt.o 4 128
long.o 284
long_util.o 38
low_level_init.o 3
memcpy.o 32
short.o 62
strlen.o 13
unhandled_exception.o 3
vreg_util.o 331
vregs.o 16
------------------------------------------------
Total: 1264 130 27

если вы пишете без стартапа, .... то у вас тоже нет cppinit.o, vreg_util.o, interrupt.o и т.п.?
Go to the top of the page
 
+Quote Post
VladislavS
сообщение Aug 1 2017, 20:38
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Цитата(Эдди @ Aug 1 2017, 22:00) *
А смысл? Еепрома же с гулькин нос!

Из любопытства, ради любви к искусству, по приколу - выбирайте sm.gif

Цитата(Эдди @ Aug 1 2017, 22:00) *
Зачем вы вообще этими яровскими штуками пользуетесь?

Реализация __eeprom реально удобно сделана, особенно в AVR версии. Грех не пользоваться.
Мне ещё нравится функция low_level_init() - там все железки проинитил и выходишь на main с мыслями об алгоритмах.
Да вроде и нет больше прямо таки фишек...

Цитата(juvf @ Aug 1 2017, 22:48) *
ps да ещё и без спл легче себе в ногу стрельнуть.

Куда обидней стрельнуть в ногу из SPL...

Цитата(juvf @ Aug 1 2017, 22:48) *
Мне не нравится "обвес".... т.е. всякие стартапы, cppinit-ы и т.п. 1400 байт флеша отьели.

Ну вы же их использовали в программе. Хотите ручками всё это написать? И не факт что короче выйдет.

Цитата(juvf @ Aug 1 2017, 22:48) *
если вы пишете без стартапа, .... то у вас тоже нет cppinit.o, vreg_util.o, interrupt.o и т.п.?

Скорее всего имелось в виду не совсем без стартапа, а с библиотечным стартапом по умолчанию. Окружение для С/C++ программы кто-то же должен создать. На ARM-е зоопарк чипов и в 99% случаев стартап надо свой для используемого чипа вставлять. В STM8 или AVR этого не надо делать.

Можно, конечно и отказаться от стандартного стартапа, но это уже какой-то недо-С и тем более не С++ получится.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Aug 2 2017, 05:30
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Да, под стартапом я имел в виду ассемблерный файл, который занимается инициализацией регистров и первичным заполнением памяти. Для STM8 этого не нужно.
А структуру файлов, которая у меня используется, наглядно можно в исходниках просмотреть. В отличие от некоторых, я не скрываю свои исходники — зачем, если есть хорошая лицензия GPL?

По поводу инициализации периферии: один раз потратил 2 часа на даташит — написал сниппет для USART/I2C/etc. По мере необходимости количество сниппетов расширяется. А т.к. у меня всегда 57600 скорость USART'а, я просто этот код вставляю! Можно вообще собрать все сниппеты в заголовочный файл (как макросы или static inline) и вызывать из кода. Будет как будто бы в "блиблиотеках", зато без лишних телодвижений.
И если gcc вполне справляется с оптимизацией, так, что можно даже на цепепе писать, то sdcc еще до него оочень далеко. И малейшая гадость вполне войдет в результирующий код (sdcc даже неиспользуемые функции выкидывать не умеет).

Насчет SPL очень правильно было сказано: с помощью этой дряни значительно легче себе в ногу стрельнуть.
Ну и просто уродливо выглядят все эти инициализации структур перед вызовом функции. Похоже, все-таки, хоть инженеры у STM грамотные, программисты — безнадежные идиоты: то SPL родят, то HAL… Нет бы сразу сниппетов "на голых регистрах" побольше написать, в которых наглядно можно было бы подводные камни errat'ы увидеть!

Сообщение отредактировал Эдди - Aug 2 2017, 05:32
Go to the top of the page
 
+Quote Post
juvf
сообщение Aug 2 2017, 07:15
Сообщение #22


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата
Ну и просто уродливо выглядят все эти инициализации структур перед вызовом функции.

может это в стм32? так там нету спл (уже нету). а в спл для стм8 нет инициализации структур перед вызовом функции. По крайней мере в gpio, uart, exti, tim, spi....
вот например инит уарт
Код
      UART1_Init(19200,
                 UART1_WORDLENGTH_8D,
                 UART1_STOPBITS_1,
                 UART1_PARITY_NO,
                 UART1_SYNCMODE_CLOCK_DISABLE,
                 UART1_MODE_TXRX_ENABLE);

не знаю как тут себе можно в ногу стрельнуть? только если вам нужно скорость 19200, а вы напишете 19400.
а вот как выглядит оптимизированная установка скорости без спл, скорость 19200 при такте в 4 МГц.
Код
    UART1->BRR2 = 8;
    UART1->BRR1 = 6;
А вот тут самострел на лицо, к гадалке не ходи.


Цитата
Похоже, все-таки, хоть инженеры у STM грамотные, программисты — безнадежные идиоты: то SPL родят, то HAL…
а у остальных как? TI? Atmel? Там теже спл.... теже уродливые структуры. Вообще, проинитить GPIO в арме без спл... напрямую в регистры - это дрянь ещё та.... всякие клоки, альтфунк, моде, пулапы..... *застрелиться*. С спл/хал - хоть и уродливые структуры, но всё таки уже полегче... не нужно лазить по всему даташиту и изучать все регистры, достаточно изучить уродливую структуру.

Цитата
Нет бы сразу сниппетов "на голых регистрах" побольше написать, в которых наглядно можно было бы подводные камни errat'ы увидеть!
что за снипеты? можно пример, например для уарта в стм8?


ps чтоб не открывать новой темы, спрошу тут любителей стм8.... в даташите есть такое

Program memory: 8 Kbyte Flash memory; data
retention 20 years at 55 °C after 100 cycles

Ни кого не пугает всего 20 лет хранения?
Go to the top of the page
 
+Quote Post
Obam
сообщение Aug 2 2017, 07:50
Сообщение #23


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Кто-нибудь, покажите устройство, реально отслужившее 20 лет (; (напомню, 1997г выпуска)

Везде так: SAM3S1A (щас на столе) - типовое 30 тыс циклов W/E и мин 10 лет хранит; AT91SAM7S256 - 10 тыс циклов W/E и те же 10 лет хранения; для AT90S8535 приглючивается хранение 25 лет.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Aug 2 2017, 08:19
Сообщение #24


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(juvf @ Aug 2 2017, 10:15) *
вот например инит уарт

Мало того, что уродливо, так еще вызывается левая функция, когда уарт инициализуется тремя-четырьмя строчками!
Цитата
не знаю как тут себе можно в ногу стрельнуть?

Когда понадобится что-то эдакое, а окажется, что в SPL это либо не реализовано, либо, что еще хуже, реализовано криво (жаловался уже на что-то подобное народ).
Цитата
А вот тут самострел налицо

Если правильно задокументировать, все будет отлично.
Цитата
а у остальных как? TI? Atmel? Там теже спл.... теже уродливые структуры.

Не надо тут! Почти любой МК можно по-человечески запрограммировать. Даже абдурину: достаточно стереть к чертовой бабушке загрузчик и программировать его как обычный авр. Ну или как обычный авр, но заливать через загрузчик. Пользоваться абдуриновскими библиотеками — это уж вообще треш!
Цитата
Вообще, проинитить GPIO в арме без спл... напрямую в регистры - это дрянь ещё та...

После облома с opencm3 я решил переходить абсолютно полностью на nolib решение: сниппеты — наше все! Вот как с STM32F042 закончу более-менее, вернусь к F103. Без библиотек элегантно получается, не тормозит и читается лучше. А даташит с RM — их в любом случае подробно читать придется. Хоть с библиотеками, хоть без них. Так зачем мучиться, и читать помимо даташита с RM еще и исходники кривых библиотек?
Цитата
что за снипеты? можно пример, например для уарта в стм8?

Кусочки кода. Я их вообще как готовые к загрузке штуки оформляю. См. у меня на гитхабе.
Цитата
Ни кого не пугает всего 20 лет хранения?

Нет. Это STM8S003, которые мегадешевые. Их во всяких халявных китайских приборчиках используют, которые все равно выкинешь раньше, чем через 20 лет.
Кстати, я когда двум этим мелкосхемам ресурс флеша исчерпал (одну аж раз на 250 хватило!), прикупил девборды на STM8S103 — практически один-в-один, но флеш намного дольше убивается. На них отлаживал, а потом 003 прошивал. Из баксовых "вольтметров" на 003 можно вполне приличный термометр с датчиком Tsic506 сделать, или экранчик по I2C (правда, криворукие китайцы даже "вольтметр" с внешним АЦП спаяли так, что аппаратный I2C у них использовать нельзя — этими ногами дисплей дергают, идиоты!).

Цитата(Obam @ Aug 2 2017, 10:50) *
для AT90S8535 приглючивается хранение 25 лет.

Вот, кстати, подозреваю, что из-за этого, а не каких-то "наведенных грозой зарядов" (а грозы-то и не было) у нас сдох этот самый МК в приборе почти 20-летней давности. И пришлось мне стать золотарем.
Go to the top of the page
 
+Quote Post
juvf
сообщение Aug 2 2017, 09:10
Сообщение #25


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(Obam @ Aug 2 2017, 12:50) *
Кто-нибудь, покажите устройство, реально отслужившее 20 лет (; (напомню, 1997г выпуска)
радиостанция, весы, автомобиль, станок, часы, свитч, модем... или например счетчик электроэнергии.... есть счетчики которые уже по 50 лет прослужили и ещё столько же прослужат. Или вы счетчик эл энергии меняете раз в 10-20 лет?

ps глянул другие... у атмеги 20 лет, у стм32 30 лет..... не айс.....

Цитата(Эдди @ Aug 2 2017, 13:19) *
Мало того, что уродливо, так еще вызывается левая функция, когда уарт инициализуется тремя-четырьмя строчками!
УРОДЛИВО!!! Это вы называете УРОДЛИВО!? Ту даже коменты в коде не нужны. Весь инит уарта в одну строчку. вызовом одной функции. вам всё равно свою функцию писать... а если в коде в нескольких местах инит уарта? а если динамически менять режим работы?....

тогда позвольте ваш, не уродливый, инит в студию?

Цитата
Когда понадобится что-то эдакое, а окажется, что в SPL это либо не реализовано
когда понадобиться что-то этакое, а в спл этого нет, то вы НИКОГДА с помощью спл не стрельните себе в ногу, ибо потому что там этого нет. Вы что-то эдакое будете реализовавыть сами, без спл.... и вот тут если и будет выстрел, то уж не из кода спл, а из вашего.


Цитата
Цитата
а у остальных как? TI? Atmel? Там теже спл.... теже уродливые структуры.


Не надо тут! Почти любой МК можно по-человечески запрограммировать.
Вы о чем.... вы обвиняете стм программистов
Цитата
Похоже, все-таки, хоть инженеры у STM грамотные, программисты — безнадежные идиоты: то SPL родят, то HAL…
и "даете им совет " или как вы бы сделали на месте программистов у ST
Цитата
Нет бы сразу сниппетов "на голых регистрах" побольше написать
Так вот в рамках контектста этих высказываний вопрос: А программисты у TI тоже идиоты? А программисты у Atmela тоже идиоты? А программисты у других компаний тоже идиоты? Программисты TI тишут теже грамоздкие спл. Да, я согласен, любой МК можно закодить без спл... коротко и быстро.... но вопрос не об этом....

Цитата
А даташит с RM — их в любом случае подробно читать придется. Хоть с библиотеками, хоть без них. Так зачем мучиться, и читать помимо даташита с RM еще и исходники кривых библиотек?
Дело в том, что не придется. Понимаете... библа и абдурино скрывает даташит. заглянул в мануал на библу, вызвал UART1_Init() и забыл про уарт. работает как часы. не нужно досконально изучать даташит и РМ. Скорость вхождения в новый МК на порядок быстрее. Как пример абдурино.... многие юзеры сего чуда вообще не знают что такое даташит и РМ. Инит уарта - Serial.begin(19200) - ВСЁ! Уровень вхождения в программирование МК нулевой.

А вообще вы тоже даташит скрываете своими снипетами. вы изучаете даташит, пишете снипеты (это ни что иное как та же библа), а потом не заглядывая в даташит пользуетесь своими снипетами.


Цитата
Если правильно задокументировать, все будет отлично.
ээээ.... не понятно.... что тут документировать?... ещё раз... вот код для скорости 19200 при 4 МГц.

UART1->BRR2 = 8;
UART1->BRR1 = 6;
тут легче ошибиться, чем с спл.

Тут нужно открыть рм... покурить его... понять как рассчитать регистры... как это всё привязано к клокам... посчитать... и прописать 8 и 6 в нужной последовательности (в обратной не работает). вот допустим вы ошиблись в расчетах, или не правильно поняли даташит и получили 7 и 6 - это и есть выстрел в ногу.
вот пример ошибочного кода.
UART1->BRR2 = 7;
UART1->BRR1 = 6;

задокументируйте его ПРАВИЛЬНО, чтобы всё было отлично!

Go to the top of the page
 
+Quote Post
Эдди
сообщение Aug 2 2017, 09:11
Сообщение #26


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Вот можно подумать, обычные USB-флешки гарантируют больше ~10 лет! Какая разница? Сдохнет через 30 лет — туда и дорога! Железяки такого типа нужно хотя бы раз в 10-15 лет обновлять, чтобы не было как у нас (см. выше).
Go to the top of the page
 
+Quote Post
Obam
сообщение Aug 2 2017, 09:17
Сообщение #27


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(juvf @ Aug 2 2017, 12:28) *
радиостанция, весы, автомобиль, станок, часы, свитч, модем... или например счетчик электроэнергии.... есть счетчики которые уже по 50 лет прослужили и ещё столько же прослужат. Или вы счетчик эл энергии меняете раз в 10-20 лет?

ps глянул другие... у атмеги 20 лет, у стм32 30 лет..... не айс.....

"Курьер" у меня '01-го, не 20-лет.
В часах "флэш"? Для чего?
В '11 был заменён эл.счётчик '74-го, ни в нём, ни в новом никакой "флэши" нет. Аргумент - не аргумент (;


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Aug 2 2017, 09:20
Сообщение #28


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(juvf @ Aug 2 2017, 12:10) *
вам всё равно свою функцию писать...

И что? У меня не будет 100500 ассертов и кучи вычислений для такой элементарщины. Три-четыре присвоения — и все!
Цитата
а если в коде в нескольких местах инит уарта?

Больше, чем количество уартов, их все равно быть не может. ctrl+c → ctrl+v решают ☺ Всяко меньше кода на выходе будет.
Цитата
а если динамически менять режим работы?

Кому это может понадобиться?
Цитата
тогда позвольте ваш, не уродливый, инит в студию?

На гитхабе лежит, я ж говорю.
Цитата
когда понадобиться что-то этакое, а в спл этого нет, то вы НИКОГДА с помощью спл не стрельните себе в ногу, ибо потому что там этого нет.

Спасибо, посмеялся. Ну и на кой тогда вы эти спл используете?
Цитата
А программисты у TI тоже идиоты? А программисты у Atmela тоже идиоты? А программисты у других компаний тоже идиоты? Программисты TI тишут теже грамоздкие спл.

Индусу заплатили, он пишет. Какая ему разница, что смысла в этой писанине нет?
Цитата
библа и абдурино скрывает даташит

И поэтому с ними работать еще сложней: нужно не только даташит читать, но и исходники долбаных библиотек/абдурин!
Цитата
Скорость вхождения в новый МК на порядок быстрее

Это хорошо только если задача — помигать светодиодиком, когда СМС придет. И делается эта железяка в одном-единственном экземпляре.
Цитата
многие юзеры сего чуда вообще не знают что такое даташит и РМ

И им наплевать, что для мигания светодиодом код 4кБ занимает! И что SPI/I2C/etc у них тупым ногодрыгом реализуются. И что для простой задачи, где при правильном подходе хватило бы 8кБ флеша за глаза, им требуется минимум 32. И т.д., и т.п.
Я вообще ничего хорошего в этом не вижу. Вон, компьютеры тоже когда-то были приличными железяками, для работы на них нужно было быть инженером. А сейчас любая блондинко сидит, мышкой тыкает. В итоге скатились чуть ли не в каменный век! Народ уже вообще не считает, что нужно учиться — компьютер же все сделает!
Та же самая мастдайка развилась именно благодаря тезису "каждой кухарке — по компутеру!". Иначе никто бы эту неюзабельную дрянь не покупал!
Цитата
А вообще вы тоже даташит скрываете своими снипетами. вы изучаете даташит, пишете снипеты (это ни что иное как та же библа), а потом не заглядывая в даташит пользуетесь своими снипетами.

По коду моего сниппета все видно, а по коду вызова библиотечной функции — нет.
Цитата
ээээ.... не понятно.... что тут документировать?... ещё раз... вот код для скорости 19200 при 4 МГц.

Написать, например, в комментариях, откуда эти числа взялись.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Aug 2 2017, 09:53
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(juvf @ Aug 1 2017, 22:48) *
Мне не нравится "обвес".... т.е. всякие стартапы, cppinit-ы и т.п. 1400 байт флеша отьели.
dlstm8mmn.a: [4]
...
vregs.o 16
------------------------------------------------
Total: 1264 130 27
если вы пишете без стартапа, .... то у вас тоже нет cppinit.o, vreg_util.o, interrupt.o и т.п.?

Вообще-то здесь не только стартап. Даже лучше сказать - не столько.
Здесь вообще-то присутствует то, что Вы сами попросили у компилятора в своей программе laughing.gif
Например "long.o" - откажитесь от использования многоразрядных чисел в программе и не будет его.
"cppinit.o" - откажитесь от статических инициализированных классов/структур с конструкторами - и не будет его.
Уберите из программы все статические объекты инициализированные не нулями - и тоже не будет каких-то секций или будут меньше.
То же самое "strlen.o", "memcpy.o" и пр.
Есть конечно ещё модель работы компилятора IAR, который зачем-то вместо использования стекового фрейма для локальных переменных (что стандартно) использует виртуальные регистры.
Из-за этого есть "vreg_util.o" и "vregs.o". Но они тоже могут быть меньше.

Цитата(Obam @ Aug 2 2017, 12:17) *
В '11 был заменён эл.счётчик '74-го, ни в нём, ни в новом никакой "флэши" нет. Аргумент - не аргумент (;

Но там есть FRAM? biggrin.gif

Цитата(juvf @ Aug 2 2017, 12:10) *
ээээ.... не понятно.... что тут документировать?... ещё раз... вот код для скорости 19200 при 4 МГц.
UART1->BRR2 = 8;
UART1->BRR1 = 6;

Такому коду место на помойке. "Без библиотек" совсем не означает что нужно писать такое.
Почему нельзя написать "без библиотек" и при этом вполне прилично? Как-то так:
Код
void UARTinit(UART_RATE rate)
{
  static u8 const tr[UART_RATE_n][2] = {
    RATE_DIV(9600), RATE_DIV(19200), RATE_DIV(38400), RATE_DIV(57600),
    RATE_DIV(115200), RATE_DIV(230400), RATE_DIV(460800)};
  u8 const *s;
...
  UART.BRR[1] = *(s = &tr[rate][0]);
  UART.BRR[0] = s[1];
Go to the top of the page
 
+Quote Post
Obam
сообщение Aug 2 2017, 09:58
Сообщение #30


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Там нет FRAM, счётчик обычный, рабоче-крестьянский без блэк-джека. Механический.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th April 2024 - 22:15
Рейтинг@Mail.ru


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