LPC43xx CMSIS Driver Library with IAR Compiler

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC43xx CMSIS Driver Library with IAR Compiler

1,209 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by gregd on Fri Sep 21 12:03:00 MST 2012
Are there any plans to update the lpc43xx CMSIS driver library to fix all of the warning messages that appear when compiled with the IAR compiler?

The main one that I am concerned about is:

Warning[Pe161]: unrecognized #pragma LPC43xx.h 52
  This is related to the #pragma push and #pragma pop.  What exactly are these for and does it hurt anything that the IAR compiler doesn't understand?

Thanks,
Greg Dunn
Labels (1)
0 Kudos
Reply
3 Replies

1,113 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by jason168 on Wed Apr 03 00:36:12 MST 2013
最好完善一些例程,如SDIO_FATFS  DAC  USB HOST 等程序...
0 Kudos
Reply

1,113 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Daniel Widyanto on Mon Mar 25 20:32:36 MST 2013
It's used in Keil to save the current settings of the compiler's pragma, so 'anonymous union' will not kick a warning / error. I don't have EWARM compiler in my PC, but I suppose if you can compile without error (or warning) on the 'anonymous union' parts, then you can just ignore it.

NXP is looking at it, and will fix it in the next release.

Sample of 'anonymous union':
<code>
typedef struct {                            /*!< (@ 0x40006000) USB0 Structure         */
  __I  uint32_t  RESERVED0[64];
  __I  uint32_t  CAPLENGTH;                 /*!< (@ 0x40006100) Capability register length */
  __I  uint32_t  HCSPARAMS;                 /*!< (@ 0x40006104) Host controller structural parameters */
  __I  uint32_t  HCCPARAMS;                 /*!< (@ 0x40006108) Host controller capability parameters */
  __I  uint32_t  RESERVED1[5];
  __I  uint32_t  DCIVERSION;                /*!< (@ 0x40006120) Device interface version number */
  __I  uint32_t  RESERVED2[7];
 
  union {
    __IO uint32_t  USBCMD_H;                /*!< (@ 0x40006140) USB command (host mode) */
    __IO uint32_t  USBCMD_D;                /*!< (@ 0x40006140) USB command (device mode) */
  } ;
 
  union {
    __IO uint32_t  USBSTS_H;                /*!< (@ 0x40006144) USB status (host mode) */
    __IO uint32_t  USBSTS_D;                /*!< (@ 0x40006144) USB status (device mode) */
  } ;
 
  union {
    __IO uint32_t  USBINTR_H;               /*!< (@ 0x40006148) USB interrupt enable (host mode) */
    __IO uint32_t  USBINTR_D;               /*!< (@ 0x40006148) USB interrupt enable (device mode) */
  } ;
 
  union {
    __IO uint32_t  FRINDEX_H;               /*!< (@ 0x4000614C) USB frame index (host mode) */
    __IO uint32_t  FRINDEX_D;               /*!< (@ 0x4000614C) USB frame index (device mode) */
  } ;
  __I  uint32_t  RESERVED3;
 
  union {
    __IO uint32_t  PERIODICLISTBASE;        /*!< (@ 0x40006154) Frame list base address (host mode) */
    __IO uint32_t  DEVICEADDR;              /*!< (@ 0x40006154) USB device address (device mode) */
  } ;
 
  union {
    __IO uint32_t  ASYNCLISTADDR;           /*!< (@ 0x40006158) Address of endpoint list in memory */
    __IO uint32_t  ENDPOINTLISTADDR;        /*!< (@ 0x40006158) Address of endpoint list in memory */
  } ;
  __IO uint32_t  TTCTRL;                    /*!< (@ 0x4000615C) Asynchronous buffer status for embedded TT (host mode) */
  __IO uint32_t  BURSTSIZE;                 /*!< (@ 0x40006160) Programmable burst size */
  __IO uint32_t  TXFILLTUNING;              /*!< (@ 0x40006164) Host transmit pre-buffer packet tuning (host mode) */
  __I  uint32_t  RESERVED4[3];
  __IO uint32_t  BINTERVAL;                 /*!< (@ 0x40006174) Length of virtual frame */
  __IO uint32_t  ENDPTNAK;                  /*!< (@ 0x40006178) Endpoint NAK (device mode) */
  __IO uint32_t  ENDPTNAKEN;                /*!< (@ 0x4000617C) Endpoint NAK Enable (device mode) */
  __I  uint32_t  RESERVED5;
 
  union {
    __IO uint32_t  PORTSC1_H;               /*!< (@ 0x40006184) Port 1 status/control (host mode) */
    __IO uint32_t  PORTSC1_D;               /*!< (@ 0x40006184) Port 1 status/control (device mode) */
  } ;
  __I  uint32_t  RESERVED6[7];
  __IO uint32_t  OTGSC;                     /*!< (@ 0x400061A4) OTG status and control */
 
  union {
    __IO uint32_t  USBMODE_H;               /*!< (@ 0x400061A8) USB mode (host mode)   */
    __IO uint32_t  USBMODE_D;               /*!< (@ 0x400061A8) USB device mode (device mode) */
  } ;
  __IO uint32_t  ENDPTSETUPSTAT;            /*!< (@ 0x400061AC) Endpoint setup status  */
  __IO uint32_t  ENDPTPRIME;                /*!< (@ 0x400061B0) Endpoint initialization */
  __IO uint32_t  ENDPTFLUSH;                /*!< (@ 0x400061B4) Endpoint de-initialization */
  __I  uint32_t  ENDPTSTAT;                 /*!< (@ 0x400061B8) Endpoint status        */
  __IO uint32_t  ENDPTCOMPLETE;             /*!< (@ 0x400061BC) Endpoint complete      */
  __IO uint32_t  ENDPTCTRL0;                /*!< (@ 0x400061C0) Endpoint control 0     */
  __IO uint32_t  ENDPTCTRL1;                /*!< (@ 0x400061C4) Endpoint control       */
  __IO uint32_t  ENDPTCTRL2;                /*!< (@ 0x400061C8) Endpoint control       */
  __IO uint32_t  ENDPTCTRL3;                /*!< (@ 0x400061CC) Endpoint control       */
  __IO uint32_t  ENDPTCTRL4;                /*!< (@ 0x400061D0) Endpoint control       */
  __IO uint32_t  ENDPTCTRL5;                /*!< (@ 0x400061D4) Endpoint control       */
} LPC_USB0_Type;
</code>
0 Kudos
Reply

1,113 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Dill on Thu Mar 21 10:45:08 MST 2013
im asking myself the same question right now...!?
anybody?
0 Kudos
Reply