Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.03.2012, 15:11
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Вопросик про RTOS
Сообщение от omercury
|
Как можно?!..
|
Можно...
Можно КАК...
Можно КАК-КАК... и...
Как можно КАК???
|
|
|
|
20.03.2012, 15:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Вопросик про RTOS
Сообщение от st__1
|
Что больше соответствует действительности...
|
...учитывая невысокий такт.
х2 (или оба фронта - в DDR юзают - не гнушаются) будет достаточно.
|
|
|
|
20.03.2012, 16:56
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Вопросик про RTOS
Сообщение от jump
|
уже неоднократно встречаю в китайских поделках аналоги AT89c2051 (заменяю при доработке на т2313/т4313) - почему так?
|
Патамушта китайские братья не хотят сидеть без работы... Они частенько лепят AT89c2051 там, где раньше стояли две микрухи обычной логики... Какбэ "прогресс"... а с ремонтом "лёгкий напряг"... значицца - иди и покупай новое...
|
|
|
|
20.03.2012, 17:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Вопросик про RTOS
|
|
|
|
20.03.2012, 17:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
|
Re: Вопросик про RTOS
Сообщение от st__1
|
Патамушта китайские братья не хотят сидеть без работы..
|
есть и другая версия - ядро дешево лицензируется, есть софт-эмуляция на ПЛИС. китайцев много, даже если один симулирует один машинный цикл или логический вентиль, да параллельно 10е6 китайцев...
|
|
|
|
21.03.2012, 00:36
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Вопросик про RTOS
Извиняюсь. Посмотрел последние проги на ASM51 были мной писаны в 2003 году и то видимо локально (уже s8252). Последние проги на ASM AVR в 2007 тоже локально. Подзабыл. Не спорю.
Но общую это картину не меняет. В чём прелесть? В делении 8 бит на 8? Вы это часто используете? При делении 16/16 даже это использовать не получается. Я бы мог вам предложить поискать команду "sbiw" в x51. Она, кстати, в десятки раз чаще используется чем "div ab" и "da a". Но всё это мелочи и общей картины не показывают.
приведу сравнение деления 16/16 на двух кристаллах.
Код:
|
;************************************************* ********;
; 32. Подпрограмма деления двухбайтных чисел ;
;************************************************* ********;
; Делимое =› R6*R5 ;
; DIV16 Делитель =› @R1+1,@R1 ;
; Частное =› R6*R5 ;
; Остаток =› R4*R3 ;
; Используются R2 И CY ;
;************************************************* ********;
?DIV16 SEGMENT CODE
RSEG ?DIV16
;
DIV16:
;
DIV16B: CLR A
CLR C
MOV R2,#17 ; счетчик циклов
MOV R4,A
DIV161: MOV R3,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
CPL A
ADD A,@R1
CPL A
MOV R3,A
INC R1
MOV A,R4
CPL A
ADDC A,@R1
CPL A
MOV R4,A
DEC R1
JNC DIV163
DIV162: MOV A,R3 ; коррекция при
ADD A,@R1; переполнении
MOV R3,A
INC R1
MOV A,R4
ADDC A,@R1
MOV R4,A
DEC R1
DIV163: MOV A,R5
RLC A ; CY =› R5
MOV R5,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R3
RLC A
DIV164: DJNZ R2,DIV161
MOV A,R5
CPL A
MOV R5,A
MOV A,R6
CPL A
MOV R6,A
RET
;************************************************* **************************
;*
;* "div16u" - 16/16 Bit Unsigned Division
;*
;* This subroutine divides the two 16-bit numbers
;* "dd8uH:dd8uL" (dividend) and "dv16uH:dv16uL" (divisor).
;* The result is placed in "dres16uH:dres16uL" and the remainder in
;* "drem16uH:drem16uL".
;*
;* Number of words :19
;* Number of cycles :235/251 (Min/Max)
;* Low registers used :2 (drem16uL,drem16uH)
;* High registers used :5 (dres16uL/dd16uL,dres16uH/dd16uH,dv16uL,dv16uH,
;* dcnt16u)
;*
;************************************************* **************************
;***** Subroutine Register Variables
.def drem16uL=r14
.def drem16uH=r15
.def dres16uL=r16
.def dres16uH=r17
.def dd16uL =r16
.def dd16uH =r17
.def dv16uL =r18
.def dv16uH =r19
.def dcnt16u =r20
;***** Code
div16u: clr drem16uL ;clear remainder Low byte
sub drem16uH,drem16uH;clear remainder High byte and carry
ldi dcnt16u,17 ;init loop counter
d16u_1: rol dd16uL ;shift left dividend
rol dd16uH
dec dcnt16u ;decrement counter
brne d16u_2 ;if done
ret ; return
d16u_2: rol drem16uL ;shift dividend into remainder
rol drem16uH
sub drem16uL,dv16uL ;remainder = remainder - divisor
sbc drem16uH,dv16uH ;
brcc d16u_3 ;if result negative
add drem16uL,dv16uL ; restore remainder
adc drem16uH,dv16uH
clc ; clear carry to be shifted into result
rjmp d16u_1 ;else
d16u_3: sec ; set carry to be shifted into result
rjmp d16u_1 |
При чём на AVR - это вариант для самой первой at90. Для atmega будет поприятнее ...
Цитата:
|
Код:
|
SUBB A,men'she_chego
JNC kuda_jampanut' |
Сижу, блин, рыдаю!...
|
неразрушающий двухбайтовый ... покажите ...
примерно так:
Код:
|
cp wl, wpl
cpc wh, wph
brlo ... |
Цитата:
|
Оно устареет тогда, когда ARM-ы с нормальной математикой подешевеют до его уровня (доживём ли?...), а умрёт ещё не скоро, учитывая написанное под него...
|
Что не умрёт, это понятно ..., а армы и так уже в этой ценовой нише ...
Например:
http://www.einfo.ru/search/?q=lpc1111&sd=1&sform=1
lpc1111 - 32 руб розница
http://www.einfo.ru/search/?q=stm32f...id=0&rand=3960
STM32F100C4T6B - 29 руб розница в lqfp48
http://www.einfo.ru/search/?q=at89c5...id=0&rand=9280
at89c2051 - 36 руб розница за 2к флэши 20 ног и 2 мипса ...
Цитата:
|
Была идея и с внутренней PLL...
|
– Fully Static Operation
На первой странице даташита. От кнопки работает.
Последний раз редактировалось SasaVitebsk; 21.03.2012 в 00:40.
|
|
|
|
21.03.2012, 10:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Вопросик про RTOS
Сообщение от SasaVitebsk
|
неразрушающий двухбайтовый ... покажите ...
|
В "аккумуляторном" МК? В чём смысл такой мульки?
Сообщение от SasaVitebsk
|
а армы и так уже в этой ценовой нише ...
|
Речь шла про
Сообщение от omercury
|
ARM-ы с нормальной математикой
|
М3, да, делить умеет, но только беззнаковые числа, М0 не умеет даже этого...
Сообщение от SasaVitebsk
|
Причём целочисленное и не совсем целочисленное.
|
Улыбнуло.
Вы, видимо, не понимаете, в чём смысл, поэтому лучше разобраться с этим сразу.
Как думаете, почему в регистр падает остаток от деления, а не дробная часть результата?
Смысл в том, что во-первых это усложнило бы аппаратный делитель многократно, и, соответственно удорожило бы его. Но самое главное - производитель не знает необходимой именно Вам точности деления, поэтому изначально не ограничивает Вас ничем - ни временем расчётов, ни точностью результата. Теоретически она может быть любой бесконечно высокой, с сохранением результата, скажем, на внешнем накопителе бесконечного объёма. Какую бы дробь ему не подсунули, для МК числа останутся всё равно целыми.
Поэтому целочисленка.
Сообщение от SasaVitebsk
|
– Fully Static Operation
|
А я никогда и не утверждал обратного. Вон в DDR-3 на каждый фронт по 2 обращения к массиву памяти и никого это почему-то не напрягает, а тут - на тебе - споры какие-то....
|
|
|
|
21.03.2012, 13:50
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Вопросик про RTOS
Сообщение от omercury
|
В "аккумуляторном" МК? В чём смысл такой мульки?
|
Смысл от такой "мульки" в десять раз выше, в реальной проге, чем от такой мульки как div ab.
Аккумуляторные процы такие как 8080 это без проблем могут, на сколько я помню.
Напоминаю, изначально речь шла, что система команд чистого RISC проца с ядром AVR (и многие следующие за ним) оказалась более развитой, чем CISC проц этапа становления однокристалок. Что, по-моему и должно было происходить.
Цитата:
|
Речь шла про М3, да, делить умеет, но только беззнаковые числа, М0 не умеет даже этого...
|
Во сторой ссылке приведён именно M3. Но для меня убей-непонятно что вам это деление далось? Его применить практически невозможно. Я просмотрел два пакета математики писанной народом для х51 целочисленной и с плавучкой ... само деление применяется только в п/п перевода чисел. Что для меня понятно, потому что костыль ...
Отсюда и из нижеследующего явно следует, что и AVR и тем более ARM (даже M0) на реальной математике (16-32 бита) получит неоспоримые преимущества. Даже по тактам, даже без деления. А ARM получит ещё и за счёт разрядности.
Цитата:
|
Улыбнуло.
Вы, видимо, не понимаете, в чём смысл, поэтому лучше разобраться с этим сразу....
|
Вот я как раз понимаю ... Именно поэтому мне это деление здесь по барабану. Например при расчёте фильтров (или любом другом делении на константу) достаточно умножения. Кроме того, div ab иногда можно заменить умножением целого на дробное.
Короче, перечисленные вами преимущества x51 являются мифическими и в реальном программировании практически не используются. Я уверен, что когда AVR разрабатывали ( а позже stm8 ), то проанализировали слабые и сильные стороны предыдущих кристаллов. Важное всё сохранили.
Из особенностей х51 ядра вызывал сожаления только контроллер прерываний двухуровневый. Ну ещё "xch", но без аккумулятора это уже не так болезненно.
Цитата:
|
А я никогда и не утверждал обратного. Вон в DDR-3 на каждый фронт по 2 обращения к массиву памяти и никого это почему-то не напрягает, а тут - на тебе - споры какие-то....
|
От кнопки работать не будет ...
|
|
|
|
02.04.2012, 19:24
|
|
Частый гость
Регистрация: 19.01.2012
Сообщений: 22
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Вопросик про RTOS
Сообщение от jump
|
н
в одночиповом варианте РТОС почти невозможна, но ТС не указал задачу - можно фантазировать.
дискуссию развивать не стоит, ТС утомим
|
Я недавно пробовал "RTX-51 tiny" именно на однотактном ядре 8052.
Очень хорошо работает на 5 задачках типа вывод данных на дисплей, ввод с клавиатуры, прием данных с UART и т.д. Выяснил, что мне этого не достаточно. - есть еще АЦП, флэш память и еще десяток задачек. Тини - не тянет.
Кстати обычный 8051 делает одну команду за 12 тактов. А однотактовый в 12 раз быстрее работает соответственно. Напритмер, если обычный 8051 - 12 мГц, то однотактовый эквивалентно увеличению частоты до 144 МГц.
RISC архитектура "раньше" (в тот момент когда она была обьявлена) имела 33 команды. А все остальные выполнялись программно. То что в AVR - 130 команд, охотно верю. Но 33 аппаратно поддерживаемые, а остальные выполняются за 6-7 аппаратных команд (типа RISC). Т.е. просто идет вставка из RISC команд.
Для чего весь этот сыр бор? Ну думаю из-за патентных всяких дел. Кому то нужно было обойти архитектуру Intel. Придумали RISC - обошли. Думали они тогда о пользователях? Вряд ли... :
|
|
|
|
02.04.2012, 19:26
|
|
Частый гость
Регистрация: 19.01.2012
Сообщений: 22
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Вопросик про RTOS
Сообщение от SasaVitebsk
|
Встроенный в него отладчик поддерживает FreeRTOS
|
А что толку, если сама Free-RTOS не поддерживает процы которые поддерживает IAR?
Работать то всеравно не будет?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:53.
|
|