LPC43xx CMSIS Driver Library with IAR Compiler

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

LPC43xx CMSIS Driver Library with IAR Compiler

1,220 次查看
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
标签 (1)
0 项奖励
回复
3 回复数

1,124 次查看
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 项奖励
回复

1,124 次查看
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 项奖励
回复

1,124 次查看
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 项奖励
回复