-
Постов
2 224 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент Obam
-
В первом посте меня смущает наличие *AIC_EOICR = 1 в обработчике прерывания от SYSC (PIT и RTT - составные части системного контроллера, как впрочем и AIC). Если мы посмотрим на "потроха" SYSC, то мы увидим: прерывания от составных частей являются "вложенными" для прерывания от AIC. Мне "к-а-а-атца", что *AIC_EOICR = 1 должно быть в обработчике прерывания от AIC и в единственном эеземпляре
-
Прогресс есть - не без него… Вот M7 и M4 в исполнении Atmel. Вообще-то "пипелин" один, но 6-ступенчатый (6 stage)
-
смещение нуля at91sam7s256
Obam ответил Димон Безпарольный тема в ARM
Нечто подобное было: "перебдел" - поставил дроссельки (~200 мкГн) в развязку по ВЧ и питания "цифра-аналог", и земли "цифра-аналог". Вылечилось заменой дросселя-развязки по земле на перемычку. -
Вот никто не отреагировал по теме: поддам жару - раскрутим Rockchip на документацию, пусть выкладывает в открытый доступ!
-
To TopicStarter: есть подозрение, что придётся забывать Atmel, ST, NXP и проч. Смогут ли Миландр, Микрон, НИЭТ обеспечить всех желающих?
-
Не в курсе ли уважаемое сообщество по такому вопросу: может переносилась firmware из проекта Versaloon на железо CoolinkEx? Причина вопроса такая: есть CoolinkEx, но использовать его с чем-то кроме Кокоса невозможно, а Versaloon c OOCD более универсален.
-
ILI9325 и ATsam4s32c
Obam ответил Грендайзер тема в ARM
Зачем тень на плетень наводите?! "…результат - 0…" Всё нормально! "Скоро, Киса, только кошки родятся" Сидеть, курить "доку", отладчик, пожаговый режим… А с изменением частоты, может оказаться, что менять ни чего не надо будет; контроллер в ЖКИ достаточно шустрый. -
ILI9325 и ATsam4s32c
Obam ответил Грендайзер тема в ARM
Быстро вы сдулись :) хватило на 3 дня. Брать и повторять чужой проект - занятие малоперспективное: контроллер в ЖКИ может и совпадает, а реализаций дисплея (связка микросхема-стекло) - "воз и маленькая тележка". Вы обратили внимание сколько разных вариантов шлейфов и цоколёвок существует? Может лучше полностью взять какой-нибудь проект с ЖКИ из ASF? Дисплей исправен? Регистры дисплея, хоть они и помечены для записи, доступны на чтение: соответствуют ли считанные данные записанным? А вообще, остаётся рассмотреть, что собрано на гибкой плате, вкурить что куда пишется, пошаговый прогон, контроль (осциллографом) - заработали ли преобразователи напряжения (по большей части в инициализации запускаются именно они) и т.д. Да, согласен, муторно, но если с наскока не заработало - другого выхода нет. -
ILI9325 и ATsam4s32c
Obam ответил Грендайзер тема в ARM
Вот не поверите, но кортекс совершенно не при делах :) Я извиняюсь, в datasheet надо всёже заглядывать: RSTC_MR_ERSTL(60) - как может быть аргументом число 60 при 4-ёхзначном поле ERSTL? Опять же, под отладчиком посмотреть: что легло в регистр RSTC_MR (благо он доступен и на чтение). -
(a + x) - (c + d) переменные все разные => всё равно
-
ILI9325 и ATsam4s32c
Obam ответил Грендайзер тема в ARM
Для нормальной инициализации дисплея не только Reset-ом дрыгать надо. Вообще имелось в виду другое: на входе uint32_t, байт был объявлен как uint16_t - винегрет. Как записать? Выделить требуемые разряды, сдвинуть в нужную позицию, и записать. Кроме того: градаций каждого цвета 64 => 0x00..0x3F, но отображаются значащие разряды не в DB[15..10], a в DB[17..12]; так что по-любому сдвигать. -
ILI9325 и ATsam4s32c
Obam ответил Грендайзер тема в ARM
Фигня это. Дисплей не проинициализирован. Кстати, ATMELовкая ASF не поможет? Там и исходники и примеры есть. Аргумент у функции: uint32_t reg_data В теле функции: uint16_t byteH = 0; uint16_t byteL = 0; byteL = reg_data; byteH = reg_data >> 8; - "эротично" :) Байт у нас 16 или же 8 бит? Если "это наш крокодил - как хотим так имеряем", то - нет возражений. :) Не подходит для записи в GRAM: на одну запись адреса регистра две записи данных, а надо - три. -
ILI9325 и ATsam4s32c
Obam ответил Грендайзер тема в ARM
На правильно включившемся дисплее, но с неочищенной GRAM, должна быть красивая хаотичная :) мешанина из разноцветных пикселей. Это есть? Вообще-то в GRAM (адрес 0X22) должны писаться тройки байтов (дисплей RGB как-никак). Подходит ли syst_int_8_bit_write для этих целей? Т.е. на одно обращение к регистру 0x22, данные RGB должны писаться тройками байт за цикл шины ЖКИ. -
Что-то список JTAG-ов подозрительно напоминает ARM-овские. С каких пор Macraigor применяется к MSP430?
-
"…управление стало удобным (совместимым с MS Word)…" - вот это я понимаю - аргумент! :-) "…какой "LPT-ный jtag" у вас есть…" Много лет испоьзую MSP-FET430PIF, само-собой самодельный. Вообще-то, я пробовал KickStart-ы и 5.51.3 и 6.10.5 и 6.20.1. В опциях проекта про отладчик у 5.51.3 LPT есть, а вот в 6-ых, если ничего не попутал, только MSP-FET430UIF.
-
Ho-но! Попрошу без инсинуаций!!! :) Когда есть в наличии и никуда бегать (даже в сетевом смысле) не надо, то почему не пользоваться? Лимитированная по сроку годности - так это излечимо…
-
Файл (IAR) - есть, лекарство потерялось. Теперь с F479 могу возиться. А что исходников библиотек нет - и пофигу! Прикольная особенность у этой древней версии: в комментариях "не любит" букву "я". Лечу массовой заменой "я" на "Я". Кстати, в свежих версиях LPT-ный jtag выброшен?
-
Появилось чуть свободного времени и я "добил" тему с неотображением NVIC в регистрах IAR EWARM6.3: с сайта ARM взял STM32F4xx.svd, (в нём NVIC расписан) привел раздел <peripheral> в соответствие с Atmel-11100G-ATARM-SAM4S-Datasheet_27-May-14, добавил в ATSAM4S16B.svd и всё заработало. <peripheral> <name>NVIC</name> <description>Nested Vectored Interrupt Controller</description> <groupName>NVIC</groupName> <baseAddress>0xE000E000</baseAddress> <addressBlock> <offset>0x0</offset> <size>0x1001</size> <usage>registers</usage> </addressBlock> <addressBlock> <offset>0x1001</offset> <size>0xFFFFF3FF</size> <usage>reserved</usage> </addressBlock> <registers> <register> <name>NVIC_STIR</name> <displayName>NVIC_STIR</displayName> <description>Software Triggered Interrupt Register</description> <addressOffset>0xF00</addressOffset> <size>0x20</size> <access>write-only</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>INTID</name> <description>interrupt to be triggered</description> <bitOffset>0</bitOffset> <bitWidth>9</bitWidth> </field> </fields> </register> <register> <name>NVIC_ISER0</name> <displayName>NVIC_ISER0</displayName> <description>Interrupt Set-Enable Register</description> <addressOffset>0x100</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>SETENA</name> <description>SETENA</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ISER1</name> <displayName>NVIC_ISER1</displayName> <description>Interrupt Set-Enable Register</description> <addressOffset>0x104</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>SETENA</name> <description>SETENA</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ISER2</name> <displayName>NVIC_ISER2</displayName> <description>Interrupt Set-Enable Register</description> <addressOffset>0x108</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>SETENA</name> <description>SETENA</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ICER0</name> <displayName>NVIC_ICER0</displayName> <description>Interrupt Clear-Enable Register</description> <addressOffset>0x180</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>CLRENA</name> <description>CLRENA</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ICER1</name> <displayName>NVIC_ICER1</displayName> <description>Interrupt Clear-Enable Register</description> <addressOffset>0x184</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>CLRENA</name> <description>CLRENA</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ICER2</name> <displayName>NVIC_ICER2</displayName> <description>Interrupt Clear-Enable Register</description> <addressOffset>0x188</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>CLRENA</name> <description>CLRENA</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ISPR0</name> <displayName>NVIC_ISPR0</displayName> <description>Interrupt Set-Pending Register</description> <addressOffset>0x200</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>SETPEND</name> <description>SETPEND</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ISPR1</name> <displayName>NVIC_ISPR1</displayName> <description>Interrupt Set-Pending Register</description> <addressOffset>0x204</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>SETPEND</name> <description>SETPEND</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ISPR2</name> <displayName>NVIC_ISPR2</displayName> <description>Interrupt Set-Pending Register</description> <addressOffset>0x208</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>SETPEND</name> <description>SETPEND</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ICPR0</name> <displayName>NVIC_ICPR0</displayName> <description>Interrupt Clear-Pending Register</description> <addressOffset>0x280</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>CLRPEND</name> <description>CLRPEND</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ICPR1</name> <displayName>NVIC_ICPR1</displayName> <description>Interrupt Clear-Pending Register</description> <addressOffset>0x284</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>CLRPEND</name> <description>CLRPEND</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_ICPR2</name> <displayName>NVIC_ICPR2</displayName> <description>Interrupt Clear-Pending Register</description> <addressOffset>0x288</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>CLRPEND</name> <description>CLRPEND</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_IABR0</name> <displayName>NVIC_IABR0</displayName> <description>Interrupt Active Bit Register</description> <addressOffset>0x300</addressOffset> <size>0x20</size> <access>read-only</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>ACTIVE</name> <description>ACTIVE</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_IABR1</name> <displayName>NVIC_IABR1</displayName> <description>Interrupt Active Bit Register</description> <addressOffset>0x304</addressOffset> <size>0x20</size> <access>read-only</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>ACTIVE</name> <description>ACTIVE</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_IABR2</name> <displayName>NVIC_IABR2</displayName> <description>Interrupt Active Bit Register</description> <addressOffset>0x308</addressOffset> <size>0x20</size> <access>read-only</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>ACTIVE</name> <description>ACTIVE</description> <bitOffset>0</bitOffset> <bitWidth>32</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR0</name> <displayName>NVIC_IPR0</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x400</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR1</name> <displayName>NVIC_IPR1</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x404</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR2</name> <displayName>NVIC_IPR2</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x408</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR3</name> <displayName>NVIC_IPR3</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x40C</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR4</name> <displayName>NVIC_IPR4</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x410</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR5</name> <displayName>NVIC_IPR5</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x414</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR6</name> <displayName>NVIC_IPR6</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x418</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR7</name> <displayName>NVIC_IPR7</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x41C</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> <register> <name>NVIC_IPR8</name> <displayName>NVIC_IPR8</displayName> <description>Interrupt Priority Register</description> <addressOffset>0x420</addressOffset> <size>0x20</size> <access>read-write</access> <resetValue>0x00000000</resetValue> <fields> <field> <name>PRI0</name> <description>PRI0</description> <bitOffset>0</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI1</name> <description>PRI1</description> <bitOffset>8</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI2</name> <description>PRI2</description> <bitOffset>16</bitOffset> <bitWidth>8</bitWidth> </field> <field> <name>PRI3</name> <description>PRI3</description> <bitOffset>24</bitOffset> <bitWidth>8</bitWidth> </field> </fields> </register> </registers> </peripheral>
-
Такого файлика "purgen_msp430_421.zip" ни у кого нет?
-
Ну во-первЫх: ddf-ы неотъемлемая часть IARa, а Atmel небрежно их составляет (вспоминаются стародавние времена EWARM4.30 - у AT91SAM7S256 были прописаны по одному AIC_SMR и AIC_SМR регистру вместо 32-х); почему-то для NXP-овых и STM-ных Cortexов NVIC в окне регистров отображается. Во-вторых: нету никаких "volatile","__root", __absolute" и прочей ботвы - ибо ассемблер. Вот как-то так… Спасибо большое