Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-11796

Add support for pointers to byte peripheral members of a structure

    • Icon: Enhancement Enhancement
    • Resolution: Won't Implement
    • Icon: Not Prioritized Not Prioritized
    • Code Generation Tools
    • CODEGEN-12564
    • C2000_22.6.1.LTS
    • default
    • This capability is not supported by C28 hw/compiler.

      This code is simplified view of how structures are created in C2000Ware header files for some HW registers.

      typedef unsigned long bp_32 __attribute__((byte_peripheral));
      
      struct tag_name
      {
         bp_32 reg1;
         bp_32 reg2;
      };
      
      extern volatile struct tag_name HWRegs;
      

      The customer requests the ability to create a pointer to a member of such a structure.

      void fxn()
      {
         volatile bp_32 *ptr = &HWRegs.reg2;
         /* ignore diagnostic about ptr never referenced */
      }
      

      Currently, this code gets these diagnostics ...

      % cl2000 file.c
      "file.c", line 13: warning: variable "ptr" was declared but never referenced
      error #99923: "file.c", line 13: Illegal use of intrinsic: __byte_peripheral_32
      
      >> Compilation failure
      

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: