Forth
http://fforum.winglion.ru/

Применение Форта для ARM, AVR, MSP430, PIC ...
http://fforum.winglion.ru/viewtopic.php?f=39&t=9
Страница 8 из 12

Автор:  Ilya [ Вт апр 05, 2016 12:08 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

chu писал(а):
Илья, ты же свою машинку от PLL разогнал?
Покажи, плз, как считаешь значение для Baud rate register (USART_BRR).
Чего то я туплю :( не могу определиться с битовым полем DIV_Fraction[3:0]

Урра! Сам победил.

Какую из 4-х (STM32L152, F429, F411, F103)? :lol: "...и тут Остапа понесло..."
Все F-ки разогнаны. Раньше считал ручками, а тут подсмотрел у буржуя:
Код:
: baud ( u -- u )  \ calculate baud rate divider, based on current clock rate
  clock-hz @ swap / ;

Сейчас ковыряю F103 (китайский клон Maple mini) и опять наступил на грабли с таймером. Камень разогнан до 72 MHz, на APB1 должно быть 36 MHz и фигвам! Ибо на блок-схеме (в разделе про RCC) есть пометка if (APB1 presclaer=1) x1 else x2 !!! + прескалер у TIM2 16 разрядный. :(

ЗЫ SPI и I2C будешь осиливать?

Автор:  chu [ Ср апр 06, 2016 08:42 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

Ilya писал(а):
Все F-ки разогнаны.

Покажи как разгоняешь. :)
Ilya писал(а):
..., а тут подсмотрел у буржуя

Покажи где подсмотрел :)
Ilya писал(а):
SPI и I2C будешь осиливать?

Обязательно, но не сразу. :D

Автор:  Ilya [ Ср апр 06, 2016 19:23 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

chu писал(а):
Ilya писал(а):
Все F-ки разогнаны.

Покажи как разгоняешь. :)
Ilya писал(а):
..., а тут подсмотрел у буржуя

Покажи где подсмотрел :)
Ilya писал(а):
SPI и I2C будешь осиливать?

Обязательно, но не сразу. :D


1) Это не моё, но адаптированное под F411
Код:

\ f (VCO clock) = f (PLL clock input) * (PLLN/PLLM)
\ f (PLL general clock output) = F (VCO clock) / PLLP
\ f (USB, RNG und andere) = f (VCO clock) / PLLQ
compiletoflash
  1 24 lshift constant PLLON
  1 25 lshift constant PLLRDY
  1 22 lshift constant PLLSRC
  1 16 lshift constant HSEON
  1 17 lshift constant HSERDY
USART2 $8 + constant USART2_BRR


: 100MHz ( -- )
HSEON RCC_CR bis!
begin HSERDY RCC_CR bit@ until
  \ Set Flash waitstates !
  $104 Flash_ACR !   \ 3 Waitstates for 120 MHz with more than 2.7 V Vcc, Prefetch buffer enabled.

  PLLSRC          \ HSE clock as 8 MHz source

  8  0 lshift or  \ PLLM Division factor for main PLL and audio PLL input clock
                  \ 8 MHz / 8 =  1 MHz. Divider before VCO. Frequency entering VCO to be between 1 and 2 MHz.

200  6 lshift or  \ PLLN Main PLL multiplication factor for VCO - between 192 and 432 MHz
                  \ 1 MHz * 200 = 200 MHz

  5 24 lshift or  \ PLLQ = 5, 200 MHz / 5 = 40 MHz

  0 16 lshift or  \ PLLP Division factor for main system clock
                  \ 0: /2  1: /4  2: /6  3: /8
                  \ 100 MHz / 2 = 100 MHz
  RCC_PLLCFGR !

  PLLON RCC_CR bis!
    \ Wait for PLL to lock:
    begin PLLRDY RCC_CR bit@ until

  2                 \ Set PLL as clock source
  %101 10 lshift or \ APB  Low speed prescaler (APB1) - Max 42 MHz ! Here 100/4 MHz = 25 MHz.
  %100 13 lshift or \ APB High speed prescaler (APB2) - Max 90 MHz ! Here 120/2 MHz = 50 MHz.
  RCC_CFGR !

  $d9  USART2_BRR ! \ Set Baud rate divider for 115200 Baud at 25 MHz.
;
: init 100mhz cr ." Freq: 100 MHz" cr ;
compiletoram

2) Вот тут много чего есть https://github.com/jeelabs/embello/tree ... 1608-forth

Автор:  chu [ Пт апр 15, 2016 10:16 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

Прерывания. Туплю.
Для моего stm32VLDiscovery читаю
README.txt писал(а):
;------------------------------------------------------------------------------
; Specials for STM32F100 and STM32F103:
;------------------------------------------------------------------------------
...
...
Interrupts:

irq-adc ( -- a-addr ) Memory locations for IRQ-Hooks
irq-exti4
irq-exti3
irq-exti2
irq-exti1
irq-exti0

Look into vectors.s and interrupts.s to add more interrupts.

Означает ли это что для добавления в систему других векторов необходимо редактировать указанные файлы и собирать (ассемблировать) систему заново?
(мне понадобилась обработка прерываний от usart3 )

И что это такое, для чего нужно и как этим пользоваться
Цитата:
;------------------------------------------------------------------------------
; Common Hardware access
;------------------------------------------------------------------------------
...
...
irq-collection ( -- a-addr ) Collection of all unhandled interrupts
?
Не догоняю :cry:

Автор:  Ilya [ Пт апр 15, 2016 11:39 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

chu писал(а):
Прерывания. Туплю.

Означает ли это что для добавления в систему других векторов необходимо редактировать указанные файлы и собирать (ассемблировать) систему заново?
(мне понадобилась обработка прерываний от usart3 )

И что это такое, для чего нужно и как этим пользоваться
Цитата:
;------------------------------------------------------------------------------
; Common Hardware access
;------------------------------------------------------------------------------
...
...
irq-collection ( -- a-addr ) Collection of all unhandled interrupts
?
Не догоняю :cry:

Именно! Я первым делом добавляю требуемые вектора и пересобираю.

Автор:  chu [ Пн апр 25, 2016 13:01 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

Ilya писал(а):
Сейчас ковыряю F103 (китайский клон Maple mini)...

У меня теперь такой stm32f103c8t6 minimum system development board module есть.
Ilya писал(а):
KPG писал(а):
Chu
По какой инструкции (шагов) собирается Mecrisp из исходников....

Правда не знаю как в Форточках, а в Линухе надо ещё установить arm-none-eabi-gcc.

Установил Sourcery CodeBench Lite Edition for ARM EABI. Это именно arm-none-eabi-gcc под Вынь7. Вроде прописал путь нормально , оно работает в соответствии с пункт2, только посвежее
Код:
gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-23)

Ilya писал(а):
Так вроде всё достаточно просто:
1. cd .../mecrisp-stellaris-2.1.6/mecrisp-stellaris-source/stm32...
2. make clean & make

Может и просто, но собрать пока не получилось, туповат. :(
Поможи,плз. Хоchu дорешить сборку и вектора прерываний.

Автор:  Ilya [ Вт апр 26, 2016 02:51 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

chu писал(а):
Ilya писал(а):
Сейчас ковыряю F103 (китайский клон Maple mini)...

У меня теперь такой stm32f103c8t6 minimum system development board module есть.

Код:
gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-23)


Может и просто, но собрать пока не получилось, туповат. :(
Поможи,плз. Хоchu дорешить сборку и вектора прерываний.

Да, вы сударь халявщик! :)) Ножки под st-link выведены отдельно.

А попробовать качнуть тут из "букваря"?
Или могу у себя пересобрать.

ЗЫ
Наткнулся ограничения размера кода в DO...LOOP и узрел следующее в controlstructures.s:
" @ Short conditional B.. opcodes support 8 Bits jump range - one of that for sign." - сразу вспомнил Zilog Z80. :D
Единственный ASM на котором я чёй-то пописывал.
Нафига он так сделал? Оптимизация?

ЗЗЫ
Потихоньку перепиливаю свой Ардуиновский "проект" на STM.
В процессе ковыряния с TFT LCD сумел в SPI: :) . В начале осилил ногодрыганьем, а потом и аппаратным. Правда пока только передающий master и без прерываний.
Аппаратный оказался шустрее в 3-и раза!

Из 3-х Фортов (amforth, Tachyon Forth, spf4) накопипастил 1Wire, и получил забавный глюк: пока в магистрали один 18b20, то 1w.scan не видит его ROM, добавляю ещё один или два датчика и нахожу только один ROM!
Есть идеи?

Автор:  chu [ Сб апр 30, 2016 07:38 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

Ilya писал(а):
... забавный глюк: пока в магистрали один 18b20, то 1w.scan не видит его ROM, добавляю ещё один или два датчика и нахожу только один ROM!
Есть идеи?

Есть.
Некорректные времянки.
Кривой скан.

В случае когда сенсор один и не найден:
- это может быть любой или какой-то определенный?
- что возвращает DetectPresence ( 1w-presence?)?
- и так с каждым?
В случае, когда сенсоров несколько и находится только один:
- это всегда один и тот же?
- если разные, есть зависимость от расположения на линии?

ЗЫ. Теперь умею собирать mecrisp из исходников. За ссылку спасибо.
ЗЗЫ. Как же они жрут память, эти кортексы ...

Автор:  Hishnik [ Вт май 03, 2016 01:18 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

chu писал(а):
Теперь умею собирать mecrisp

А что в нем такого привлекательного? В каждом регионе, в принципе, свои популярные-доставаемые-поддержанные МК. Mecrisp в России как-то не очень... или нет?

Нет, я вижу Stellaris, допустим, в терраэлектронике, но выглядит он... обычно.

Автор:  KPG [ Вт май 03, 2016 04:32 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

Hishnik писал(а):
chu писал(а):
Теперь умею собирать mecrisp

А что в нем такого привлекательного? В каждом регионе, в принципе, свои популярные-доставаемые-поддержанные МК. Mecrisp в России как-то не очень... или нет?.

Вопрос не до понят :)
Mecrisp-Stellaris - это авторское название Форт системы для ARM контроллеров от разных производителей (отдельно Mecrisp есть и для MSP430).

P.S. Поддержка Stellaris в нём, возможно, появилась в первую очередь.

Автор:  Hishnik [ Вт май 03, 2016 11:08 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

KPG писал(а):
Mecrisp-Stellaris - это авторское название Форт системы для ARM контроллеров от разных производителей (отдельно Mecrisp есть и для MSP430).

Я как-то зацепил активное продвижение именно Mecrisp-Stellaris в c.l.f. По обыкновению, абстрактные вопросы остались там неуслышанными, в качестве основного достижения упоминалась именно поддержка Stellaris. Чем она так важна и уникальна, я так и не смог узнать.

Автор:  Ilya [ Пт май 06, 2016 03:06 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

chu писал(а):
...
Есть.
Некорректные времянки.
Кривой скан.

...


Добавил 3-й датчик и scan нашёл 2-а датчика! :D
Бум ковырять скан.

Автор:  Ilya [ Пт май 06, 2016 03:16 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

Hishnik писал(а):
chu писал(а):
Теперь умею собирать mecrisp

А что в нем такого привлекательного? В каждом регионе, в принципе, свои популярные-доставаемые-поддержанные МК. Mecrisp в России как-то не очень... или нет?

Нет, я вижу Stellaris, допустим, в терраэлектронике, но выглядит он... обычно.

Пожирнее возможности за меньшую стоимость по сравнению с Ардуиной.
amForth - чуть (не всегда конечно) накосячил и весь флэш в прах. Welcome на перезаливку!
Mecrisp поустойчивей в этом плане.

Автор:  Ilya [ Сб май 07, 2016 04:22 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

chu писал(а):
Ilya писал(а):
... забавный глюк: пока в магистрали один 18b20, то 1w.scan не видит его ROM, добавляю ещё один или два датчика и нахожу только один ROM!
Есть идеи?

Есть.
Некорректные времянки.
Кривой скан.


"Победил"!!! :D
Выкинул свои извращения и адаптировал твои amForth-ские либы. :roll:
Кста, у меня они уже 2-а года успешно трудятся в железяке!

Автор:  KPG [ Пт июн 03, 2016 04:47 ]
Заголовок сообщения:  Re: Применение Форта для ARM, AVR, MSP430, PIC ...

x4th is a Forth like cross compiler running under Windows targeting Microchip PIC processors. x4th compiles Forth sources into an assembly file, not directly into target code.

Код:
Directly supported processors for the current package are :

    18c242
    18c252
    18c442
    18c452

    18f242
    18f252
    18f442
    18f452

    18f6527
    18f6622
    18f6627
    18f6722

Страница 8 из 12 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/