23.08.2011, 01:26
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tanq
|
Поделил частоту на 2 - все замигало. 20 мег на процессоре всеж выше 16 и наверное можно еще повысить. Но, главное, на таймерах и всей переферии осталось 40 мег. Т.е. разрядность ШИМ повышается, что для маломощных SMPS весьма полезно. Да и для интерфейсов тоже часто скорости не хватает.
|
Сомнительная польза... ![Рот до ушей](images/smilies/icon_doushei.gif)
Вырастет потребление, что-то куда-то начнёт пролазить, что-то сбоить... температурный диапазон... диапазон питающих...
Как-то не по даташиту... но для настольных комнатотемпературных решений прокатит... не в серию...
|
|
|
|
23.08.2011, 01:38
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: FAQ по STM8
Понятно, в серию разогнанные процы лучше не запускать.
По Космику небольшое дополнение: как выяснилось он не умеет нормально умножать числа. Перемножение 16x16-›32 выржается в нем в вызове специальной функции умножения, а потом еще и функции 32битного сложения. Интересно, что разработчики этого компилятора довольно высоко оценивают свою разработку, если судить по ее цене
Ждем портирования GCC. С этим хламом далеко не уедешь.
|
|
|
|
23.08.2011, 09:12
|
|
Прописка
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tanq
|
во-первых, по умолчанию не сделана инициализация глобальных переменных
во-вторых, там задается начало стека и его надо исправлять в зависимости от объема SRAM.
|
По умолчанию где? У меня все нормально, но я пишу скрипт свой.
Про стек аналогично.
Про умножение, ни кто собственно и не скрывал, в доке на компилятор все расписано подробно.
У stm8 на сколько я помню нет аппаратного умножения 16*16.
32 кб = 0$, вроде не дорого
__________________
ziblog.ru
Последний раз редактировалось zheleznjakov; 23.08.2011 в 09:56.
|
|
|
|
23.08.2011, 13:06
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: FAQ по STM8
zheleznjakov
По умочанию - это в скрипте из прилагаемого примера. С уможением мне не нравится то, что компилятор его не инлайнит. Это во первых. Во-вторых, насколько я понял, вместо умножения 16x16-›32 делается преобразование в long и потом умножение 32x32-›32, что намного дольше. 32 битные сложения тоже не инлайнит. Может я каие-то опции пока не нашел?
Но зато я этот космик к code::blocks приделал
|
|
|
|
23.08.2011, 13:26
|
|
Вид на жительство
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
|
Re: FAQ по STM8
Цитата:
|
Ждем портирования GCC. С этим хламом далеко не уедешь.
|
это вряд ли... Всякие Космики и ИАРы хотят зарабатывать - наверняка забашляли ST чтобы не допустить появления свободного компилятора. Остается надеятся на энтузиастов opensource, как было с AVR-GCC
|
|
|
|
23.08.2011, 13:36
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: FAQ по STM8
А как они это могут не допустить? Я не вижу возможных инструментов. SDCC уже портировали, только сыроват он.
|
|
|
|
23.08.2011, 13:55
|
|
Прописка
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от tanq
|
zheleznjakov
По умочанию - это в скрипте из прилагаемого примера. С уможением мне не нравится то, что компилятор его не инлайнит. Это во первых. Во-вторых, насколько я понял, вместо умножения 16x16-›32 делается преобразование в long и потом умножение 32x32-›32, что намного дольше. 32 битные сложения тоже не инлайнит. Может я каие-то опции пока не нашел?
Но зато я этот космик к code::blocks приделал
|
Если бы точно знать что функция будет один раз использоваться, конечно можно было и не делать вызов, иначе простая экономия памяти.
Честно говоря пока в подробности умножения не в давался, но на заметку поставил гляну потом что да как. (не думаю что imul и lmul физически одна и та же функция)
(интересно бы гянуть как с этим в ИАРе? за который просят по более ![Улыбка](images/smilies/icon_smile.gif) )
Коде:блок я не перевариваю, прикрутил его к эклипсу.
Меня вот больше волнует, но пока я не разбирался, как перенести часть этих функций в ОЗУ.
__________________
ziblog.ru
|
|
|
|
23.08.2011, 19:33
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: FAQ по STM8
Еще интересный вопрос появился. Можно ли в STM8 обращаться к регистрам в 16 битном режиме? В хидерах они объявлены как 8-битные, но я ведь могу и подправить хидеры, сделав для каждого регистра union. Считывание АЦП по байтам выглядит маразматично. В то же время 16 битный регистр вообще не считывается, а сразу используется по назначению (в вычислениях).
|
|
|
|
24.08.2011, 06:32
|
|
Прописка
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
|
Re: FAQ по STM8
Нет, этого делать нельзя. Потому что доступ к этим регистрам должен происходить в определенном порядке, как правило это касается регистров младший байт которых должен быть прочитан последним, а если вы измените описание, то например чтение будет происходить с использованием инструкции LDW, которая читает младший байт первым, а это уже нарушение.
Опять, таки все это описано в доке
__________________
ziblog.ru
|
|
|
|
24.08.2011, 13:29
|
|
Гражданин KAZUS.RU
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
|
Re: FAQ по STM8
Короче, надо попробовать. А точно ldw читает байты в неправильном порядке? Я как понял проц low-endian, т.е. байты идут старший, потом младший.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:26.
|
|