Отличия процессора R1 от P1 » History » Version 6
krufter_multiclet, 07/24/2014 05:35 PM
| 1 | 1 | krufter_multiclet | h1. Отличия процессора R1 от P1 |
|---|---|---|---|
| 2 | 1 | krufter_multiclet | |
| 3 | 2 | krufter_multiclet | Перечень основных отличий процессоров R1 от P1: |
| 4 | 2 | krufter_multiclet | |
| 5 | 2 | krufter_multiclet | 1)В процессоре R1 появился доступ к внешней памяти: |
| 6 | 2 | krufter_multiclet | можно управлять 2-мя банками PROM, одним банком I/O, |
| 7 | 2 | krufter_multiclet | 4-мя банками SRAM, двумя банками SDRAM. |
| 8 | 2 | krufter_multiclet | Теперь ПЗУ – любая внешняя FLASH, тогда как в первом процессоре |
| 9 | 2 | krufter_multiclet | внешнее FLASH ПЗУ - XCF04S, XCF08P, XCF16P, XCF32P. Но и в процессор Р1 |
| 10 | 2 | krufter_multiclet | можно, например, грузить прошивку по spi реализовав простой протокол. |
| 11 | 2 | krufter_multiclet | Внутренняя память данных и программ процессора R1 увеличилась до 256 Кбайт каждая. |
| 12 | 2 | krufter_multiclet | |
| 13 | 3 | krufter_multiclet | 2)Поддержка +реконфигурации+ клеток. Поддержка косвенной адресации. |
| 14 | 2 | krufter_multiclet | |
| 15 | 6 | krufter_multiclet | 3)Обновлены(добавлены новые) системные регистры. |
| 16 | 2 | krufter_multiclet | Появился блок работы с памятью DTC. |
| 17 | 2 | krufter_multiclet | |
| 18 | 6 | krufter_multiclet | 4)Работают прерывания от всех блоков периферии. |
| 19 | 2 | krufter_multiclet | |
| 20 | 6 | krufter_multiclet | 5)Плавающая запятая в R1 теперь поддерживает двойную точность. |
| 21 | 2 | krufter_multiclet | |
| 22 | 6 | krufter_multiclet | 6)Периферия: |
| 23 | 2 | krufter_multiclet | - PLL (входная частота 8 - 16 МГц) |
| 24 | 2 | krufter_multiclet | - АЦП (16 бит, 48 KSPS, 8 каналов) |
| 25 | 2 | krufter_multiclet | - ЦАП (12 бит, 125 KSPS, 2 канала) |
| 26 | 2 | krufter_multiclet | - USB 2.0 (девайс, DMA) |
| 27 | 2 | krufter_multiclet | - RTC с календарем |
| 28 | 2 | krufter_multiclet | - I2S ведущий |
| 29 | 2 | krufter_multiclet | |
| 30 | 6 | krufter_multiclet | 7)Отличия в системе команд: |
| 31 | 4 | krufter_multiclet | |
| 32 | 3 | krufter_multiclet | |*система команд*|*P1*|*R1*| |
| 33 | 3 | krufter_multiclet | |@N, @M|ARG1=@N; ARG2=@M|ARG1=@N; ARG2=@M| |
| 34 | 3 | krufter_multiclet | |@N, #R|ARG1=@N; ARG2=#GPR или #CR или [#IR]|ARG1=@N; ARG2=#GPR или #CR или #IR| |
| 35 | 3 | krufter_multiclet | |@N, @M + V|ARG1=@N; ARG2=V (@M=@0, не исп.)|ARG1=@N; ARG2=@M+V(@M=@0=0, сложение 32 разр. целочисл. беззнак.)| |
| 36 | 3 | krufter_multiclet | |@N, #R + V|ARG1=@N; ARG2=[#IR+V] (32 сложение разр. целочисл. беззнак.)|ARG1=@N; ARG2=#GPR+V или #CR+V или #IR+V(сложение 32 разр. целочисл. беззнак.)| |
| 37 | 3 | krufter_multiclet | |@N, [@M]|нет|ARG1=@N; ARG2=[@M]| |
| 38 | 3 | krufter_multiclet | |@N, [#R]|нет|ARG1=@N; ARG2=[#GPR] или [#CR] или [#IR]| |
| 39 | 3 | krufter_multiclet | |@N, [@M + V]|нет|ARG1=@N; ARG2=[@M+V](@M=@0=0, сложение 32 разр. целочисл. беззнак.)| |
| 40 | 3 | krufter_multiclet | |@N, [#R + V]|нет|ARG1=@N; ARG2=[#GPR+V] или [#CR+V] или [#IR+V](сложение 32 разр. целочисл. беззнак.)| |
| 41 | 3 | krufter_multiclet | |
| 42 | 3 | krufter_multiclet | |
| 43 | 3 | krufter_multiclet | @M - значение из коммутатора |
| 44 | 3 | krufter_multiclet | #R - регистр |
| 45 | 3 | krufter_multiclet | GPR - регистр общего назначения |
| 46 | 3 | krufter_multiclet | CR - системный регистр |
| 47 | 3 | krufter_multiclet | IR - индексный регистр |
| 48 | 3 | krufter_multiclet | V - константа |
| 49 | 3 | krufter_multiclet | [x] - значение берется из памяти по адресу заданному в скобках |
| 50 | 3 | krufter_multiclet | ARG1 - первый аргумент команды |
| 51 | 3 | krufter_multiclet | ARG2 - второй аргумент команды |
| 52 | 5 | krufter_multiclet | |
| 53 | 6 | krufter_multiclet | 8) Совместимость по возможности сохранили |