Obam 38 14 ноября, 2014 Опубликовано 14 ноября, 2014 · Жалоба При работе с SAM4S16B (ATMEL) пользуюсь IAR EWARM6.3 и ассемблером : в выпадающем списке окна Registers нет регистров, относящихся к NVIC. Отладка идет с использованием штатного IAR-овского файла iosam4s16b.svd: в нём нет и намёка на NVIC. Есть подозрение, что в файлике iosam4s.ddf NVIC прописан, только его нет нигде. Может уважаемое сообщество знает как помочь моей беде? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 18 ноября, 2014 Опубликовано 18 ноября, 2014 · Жалоба Так же как и с любой другой периферией ядра: заходите на http://infocenter.arm.com/help/index.jsp?t...home/index.html качаете Reference Manual на своё ядро и изучаете раздел NVIC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 24 ноября, 2014 Опубликовано 24 ноября, 2014 · Жалоба Любезный, как RefMAN на ядро поможет включить отображение регистров NVIC в EWARM при отладке SAM4S16? ;) Вы бы посмотрели у себя в каталоге с IARом: может завалялся файлик iosam4s.ddf? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 24 ноября, 2014 Опубликовано 24 ноября, 2014 · Жалоба Вы бы посмотрели у себя в каталоге с IARом: может завалялся файлик iosam4s.ddf? Такого нет, но есть такие: ATSAM4S16A.ddf ATSAM4S16B.ddf ATSAM4S16C.ddf ATSAM4S2A.ddf ATSAM4S2B.ddf ATSAM4S2C.ddf ATSAM4S4A.ddf ATSAM4S4B.ddf ATSAM4S4C.ddf ATSAM4S8A.ddf ATSAM4S8B.ddf ATSAM4S8C.ddf ATSAM4SA16B.ddf ATSAM4SA16C.ddf ATSAM4SD16B.ddf ATSAM4SD16C.ddf ATSAM4SD32B.ddf ATSAM4SD32C.ddf ATSAM4SP32A.ddf А из iosam4s бывает только хидер: iosam4s.h Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 25 ноября, 2014 Опубликовано 25 ноября, 2014 · Жалоба Xenia, (сужу по аватарке) голубушка, поделитесь .ddf-ками на SAM4, не сочтите за труд. В моей инсталляции EWARM Сortex-ы Atmela разрисованы только .svd-файлами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 25 ноября, 2014 Опубликовано 25 ноября, 2014 · Жалоба Xenia, (сужу по аватарке) голубушка, поделитесь .ddf-ками на SAM4, не сочтите за труд. В моей инсталляции EWARM Сortex-ы Atmela разрисованы только .svd-файлами. Это файлы от EWARM-7303 ATSAM4S.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 26 ноября, 2014 Опубликовано 26 ноября, 2014 · Жалоба Любезный, как RefMAN на ядро поможет включить отображение регистров NVIC в EWARM при отладке SAM4S16? ;) Элементарно: 1.Описываете необходимую периферию. Например так: //NVIC (Cortex-M3 Peripheral) typedef struct { u32 unuse0[1]; u32 INT_TYPE; u32 ACTLR; u32 unuse1[1]; struct { u32 CTRL; u32 LOAD; u32 VAL; u32 CAL; } ST; u32 unuse2[56]; u32 ENA[2]; u32 unuse3[30]; u32 DIS[2]; u32 unuse4[30]; u32 SETPEND[2]; u32 unuse5[30]; u32 CLRPEND[2]; u32 unuse6[30]; u32 ACTIVE[2]; u32 unuse7[62]; u32 PRI[16]; u32 unuse8[560]; u32 CPUID; u32 INT_CTRL; u32 VTABLE; u32 APINT; u32 SCR; //System Control Register u32 CCR; //Configuration Control Register u32 SYSPRI[3]; //System Handler Priority Registers u32 SHCSR; //System Handler Control and State Register union { u32 CFSR; //Configurable Fault Status Register struct { u8 MMFSR; //Memory Manage Fault Status Register u8 BFSR; //Bus Fault Status Register u16 UFSR; //Usage Fault Status Register }; }; u32 HFSR; //Hard Fault Status Register u32 DFSR; //Debug Fault Status Register u32 MMFAR; //Memory Manage Fault Address Register u32 BFAR; //Bus Fault Address Register u32 unuse9[21]; u32 MPU_TYPE; u32 MPU_CTRL; u32 MPU_NUMBER; u32 MPU_BASE; u32 MPU_ATTR; u32 unuse10[19]; u32 DBG_CTRL; u32 DBG_XFER; u32 DBG_DATA; u32 DBG_INT; u32 unuse11[64]; u32 SW_TRIG; } HwRegsNVIC; 2.Натягиваете её на адресное пространство: EXTERN volatile __no_init __root __absolute HwRegsNVIC NVIC @ 0xE000E000; 3.В окне Watch IAR-а вводите NVIC. 4Наслаждаетесь результатом. Без всяких ddf. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 27 ноября, 2014 Опубликовано 27 ноября, 2014 · Жалоба Ну во-первЫх: ddf-ы неотъемлемая часть IARa, а Atmel небрежно их составляет (вспоминаются стародавние времена EWARM4.30 - у AT91SAM7S256 были прописаны по одному AIC_SMR и AIC_SМR регистру вместо 32-х); почему-то для NXP-овых и STM-ных Cortexов NVIC в окне регистров отображается. Во-вторых: нету никаких "volatile","__root", __absolute" и прочей ботвы - ибо ассемблер. Вот как-то так… Это файлы от EWARM-7303 Спасибо большое Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 4 февраля, 2015 Опубликовано 4 февраля, 2015 · Жалоба Появилось чуть свободного времени и я "добил" тему с неотображением 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> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться