This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3359: NDK Client example for ICEv2

Part Number: AM3359
Other Parts Discussed in Thread: SYSBIOS, OMAPL138

Hello again

I am trying so run the Client Example "ndk_evmOMAPL138_arm9_client" on my AM3359 ICE V2.

Therefor I had to do some changes:

  • Platform evmAM3359
  • Mmu: "var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu');"
  • omapl138 Library in the config File: "xdc.useModule('ti.drv.omapl138.Emac');" has been commented out
  • In the AM335x.cmd file I had to shift the memory, because it was overlapping with other memories in this exampl
      • SRAM:     o = 0x44D82000 l = 0x0000FC00 /* 64kB internal SRAM */
        L3OCMC0: o = 0x44D91C00 l = 0x00010000 /* 64kB L3 OCMC SRAM */
        M3SHUMEM: o = 0x44D00000 l = 0x00004000 /* 16kB M3 Shared Unified Code Space */
        M3SHDMEM: o = 0x44D80000 l = 0x00002000 /* 8kB M3 Shared Data Memory */
        DDR0:     o = 0xC0000000 l = 0x40000000 /* 1GB external DDR Bank 0 */
  • I added the sys_bios_driver.lib in the file search path

With these corrections I am able to make a build and also able to download it to the AM3359.

After starting the application I get two notes in the console:

Service Status: Telnet : Enabled : : 000

Service Status: HTTP : Enabled : : 000

But referring to the users guide there should be the acquired IP-Address .. I am also not able to visit the web page or ping the AM3359.

So there must be a mistake, but I am note sure where I should begin to search ...

CCS 6.0.1.00040 / NDK 2.24.2.31 / NSP 1.10.3.15 / SYS/BIOS 6.35.4.50 / Compiler TI v5.1.6

  • The RTOS team have been notified. They will respond here.
  • Mario,

    You probably need to check starting from mac address read, phy link status and then ip address. Do you add emac driver for AM335x ICE in your config file:

    /* Load the EMAC packages */

    var Emac = xdc.loadPackage('ti.drv.emac');

    Emac.Settings.socType = socType;

    Have you updated the following pinmux config for evm OMAPL138?

       /* pinmux configuration */

       pinmuxConfig(PINMUX_MDIO_REG, PINMUX_MDIO_MASK, PINMUX_MDIO_VAL);  //MDIO shared by both RMII and MII

       pinmuxConfig(PINMUX_MII_MDIO_EN_REG, PINMUX_MII_MDIO_EN_MASK, PINMUX_MII_MDIO_EN_VAL); //pinmux to select gpio bank2 pin6

       pinmuxConfig(PINMUX_MII_REG_0, PINMUX_MII_MASK_0, PINMUX_MII_VAL_0);

       pinmuxConfig(PINMUX_MII_REG_1, PINMUX_MII_MASK_1, PINMUX_MII_VAL_1);

    You may look into the file main_icev2AM335x.c in ti\pdk_am335x_1_0_6\packages\ti\transport\ndk\nimu\example\src for AM335x ICE v2 board/emac init.

    Regards, Garrett

  • Hello Garrett,

    first of all thanks for your reply. As you might have imagined, I am not a specialist at this time, so please don't be too critical with my questions.

    As you suggested I tried to add the emac driver manually in my client.cfg File. After installing the PDK 1.0.6 I was able to load the Package without an error.
    But which sockType do I have to link? I get only the error message that the "soctype" is not defined. (client.cfg is attached)
    [Update] I found out the socket type .. It should be "am335x" if I am right!
    But now I get the following Build Error: Library not found: C:/ti/pdk_am335x_1_0_6/packages/ti/drv/emac/./lib/am335x/a8/release/ti.drv.emac.aea8fnv

    This library is of course not in this directory. I can only find a "ti.drv.emac.aa8fg" File in this directory.

    The PinmuxConfig was prepared in the emacHooks.c as you posted (see attached c-File).
    I also have had a look on the main_icev2AM335x.c, but I was not able to get quintessence that I was looking for. Maybe you have another proposals ...

    Are there some finalized examples available for AM335x, ICEV2 and NDK? This would probably safe much time

    2476.client.cfg

    /*
     *  ======== emacHooks.c ========
     */
    
    #include <stdio.h>
    #include <stdint.h>
    
    #include <netmain.h>
    
    #ifdef BSL
    #include <evmomapl138.h>
    #include <evmomapl138_emac.h>
    
    /* 
     * Define BSL if you want the MAC address to be read from SPI Flash.
     * For this you also need to make sure that a valid MAC address is written to SPI Flash using macwriter.pjt
     * supplied with BSL.  Enable this define only after witing MAC address to SPI flash using
     * macwriter.pjt present in BSL.
     */
    #include <evmomapl138_spiflash.h>
    #include <evmomapl138_i2c.h>
    #include <evmomapl138_i2c_gpio.h>
    #include <evmomapl138_gpio.h>
    #include <evmomapl138_timer.h>
    #endif 
    
    /* GPIO Control and Timer Global Register */
    #define GPIO_CONTROL_REG (*(volatile int*)0x01C20008)
    #define TIMER_GLOBAL_REG (*(volatile int*)0x01C20024)
    
    /* Macros to set and clear bits */
    #define BITSET(dest,mask)     (dest |= mask)
    #define BITCLR(dest,mask)     (dest &= ~mask)
    
    
    /* MII pinmux */
    #define PINMUX_MII_REG_0         (2)
    #define PINMUX_MII_MASK_0        (0xFFFFFFF0)
    #define PINMUX_MII_VAL_0         (0x88888880)
    #define PINMUX_MII_REG_1         (3)
    #define PINMUX_MII_MASK_1        (0xFFFFFFFF)
    #define PINMUX_MII_VAL_1         (0x88888888)
    
    /* MDIO pinmux */
    #define PINMUX_MDIO_REG          (4)
    #define PINMUX_MDIO_MASK         (0x000000FF)
    #define PINMUX_MDIO_VAL          (0x00000088)
    
    /* GPIO pinmux */
    #define PINMUX_MII_MDIO_EN_REG	 (6)
    #define PINMUX_MII_MDIO_EN_MASK	 (0x000000F0)
    #define PINMUX_MII_MDIO_EN_VAL	 (0x00000080)
    
    /* MDIO phy access functions */
    uint MDIO_phyRegWrite( uint phyIdx, uint phyReg, short data );
    
    /* This string array corresponds to link state as defined in csl_mdio.h */
    static char *LinkStr[] = { "No Link",
                               "10Mb/s Half Duplex",
                               "10Mb/s Full Duplex",
                               "100Mb/s Half Duplex",
                               "100Mb/s Full Duplex"};
                               
    /* Sysconfig registers */
    typedef struct
    {
       volatile uint32_t REVID;            // 0x0000
       volatile uint32_t RSVD0;            // 0x0004
       volatile uint32_t DIEIDR[4];        // 0x0008
       volatile uint32_t RSVD1[2];         // 0x0018
       volatile uint32_t BOOTCFG;          // 0x0020
       volatile uint32_t RSVD2[5];         // 0x0024
       volatile uint32_t KICKR[2];         // 0x0038
       volatile uint32_t HOST0CFG;         // 0x0040
       volatile uint32_t HOST1CFG;         // 0x0044
       volatile uint32_t RSVD3[38];        // 0x0048
       volatile uint32_t IRAWSTAT;         // 0x00E0
       volatile uint32_t IENSTAT;          // 0x00E4
       volatile uint32_t IENSET;           // 0x00E8
       volatile uint32_t IENCLR;           // 0x00EC
       volatile uint32_t EOI;              // 0x00F0
       volatile uint32_t FLTADDRR;         // 0x00F4
       volatile uint32_t FLTSTAT;          // 0x00F8
       volatile uint32_t RSVD4[5];         // 0x00FC
       volatile uint32_t MSTPRI[3];        // 0x0110
       volatile uint32_t RSVD5;            // 0x011C
       volatile uint32_t PINMUX[20];       // 0x0120
       volatile uint32_t SUSPSRC;          // 0x0170
       volatile uint32_t CHIPSIG;          // 0x0174
       volatile uint32_t CHIPSIG_CLR;      // 0x0178
       volatile uint32_t CFGCHIP[5];       // 0x017C
    } sys_config_regs_t;
    
    #define SYSCONFIG_REG_BASE (0x01C14000)
    #define SYSCONFIG          ((sys_config_regs_t *)SYSCONFIG_REG_BASE)
    
    /* unlock/lock kick registers defines */
    #define KICK0R_UNLOCK      (0x83E70B13)
    #define KICK1R_UNLOCK      (0x95A4F1E0)
    #define KICK0R_LOCK        (0x00000000)
    #define KICK1R_LOCK        (0x00000000)
    
    static UINT8 bMacAddr[8]= { 0x00, 0x08, 0xee, 0x03, 0x14, 0x99 }; 
    
    /*
     *  ======== pinmuxConfig ========
     */
    void pinmuxConfig(uint32_t in_reg, uint32_t in_mask, uint32_t in_val)
    {
       /*
        * make sure the pinmux register is cleared for the mask bits before
        * setting the value.
        */
       BITCLR(SYSCONFIG->PINMUX[in_reg], in_mask);
       BITSET(SYSCONFIG->PINMUX[in_reg], in_val);
    }
    
    /*
     *  ======== EMAC_initialize ========
     */
    void EMAC_initialize()
    {
        /* configure the GPIO control and timer global registers */
        GPIO_CONTROL_REG = 0x00000000;
        TIMER_GLOBAL_REG = 0x00000007;
    
        /* unlock the system config registers. */   
        SYSCONFIG->KICKR[0] = KICK0R_UNLOCK;
        SYSCONFIG->KICKR[1] = KICK1R_UNLOCK;
        
        /* pinmux configuration */
    	pinmuxConfig(PINMUX_MDIO_REG, PINMUX_MDIO_MASK, PINMUX_MDIO_VAL); 					  //MDIO shared by both RMII and MII
        pinmuxConfig(PINMUX_MII_MDIO_EN_REG, PINMUX_MII_MDIO_EN_MASK, PINMUX_MII_MDIO_EN_VAL); //pinmux to select gpio bank2 pin6 
        pinmuxConfig(PINMUX_MII_REG_0, PINMUX_MII_MASK_0, PINMUX_MII_VAL_0);
        pinmuxConfig(PINMUX_MII_REG_1, PINMUX_MII_MASK_1, PINMUX_MII_VAL_1);
          
    
        BITCLR(SYSCONFIG->CFGCHIP[3], 0x00000100);
    }
    
    /*
     *  ======== EMAC_getConfig ========
     *
     * This is a callback from the Ethernet driver. This function
     * is used by the driver to get its 6 byte MAC address, and
     * to determine which DSP interrupt the EMAC should be mapped to.
     */
    void EMAC_getConfig( UINT8 *pMacAddr)
    {
    #ifdef BSL
        int retval;  
        static UINT8 readMacAddr[8]  
        
        retval= SPIFLASH_readMACAddr(readMacAddr);
        if (retval == 0)) {
            printf("Using MAC Address: %02x-%02x-%02x-%02x-%02x-%02x\n",
                readMacAddr[0], readMacAddr[1], readMacAddr[2],
                readMacAddr[3], readMacAddr[4], readMacAddr[5]);
    		mmCopy( pMacAddr, readMacAddr, 6 );
        }
        else {
            printf("Using default MAC address\n");
            printf("Using MAC Address: %02x-%02x-%02x-%02x-%02x-%02x\n",
                bMacAddr[0], bMacAddr[1], bMacAddr[2],
                bMacAddr[3], bMacAddr[4], bMacAddr[5]);
    		mmCopy( pMacAddr, bMacAddr, 6 );
        }
    #else
        printf("Using default MAC address\n");
        printf("Using MAC Address: %02x-%02x-%02x-%02x-%02x-%02x\n",
                bMacAddr[0], bMacAddr[1], bMacAddr[2],
                bMacAddr[3], bMacAddr[4], bMacAddr[5]);
    			 mmCopy( pMacAddr, bMacAddr, 6 );
    #endif
    }
    
    /*
     *  ======== EMAC_setConfig ========
     *
     *  This is a callback from the Ethernet driver. This function
     *  is used by the driver IOCTL function to change the local copy of the MAC
     *  address prior to rebooting.  Upon reboot, the MAC address change made here
     *  will take effect.
     */
    void EMAC_setConfig(unsigned char *pMacAddr)
    {
        mmCopy(bMacAddr, pMacAddr, 6);
        printf(
                "Setting MAC Addr to: %02x-%02x-%02x-%02x-%02x-%02x\n",
                bMacAddr[0], bMacAddr[1], bMacAddr[2],
                bMacAddr[3], bMacAddr[4], bMacAddr[5]);
    }
    
    /*
     * ======== EMAC_linkStatus ========
     *
     * This is a callback from the Ethernet driver. This function
     * is called whenever there is a change in link state. The
     * current PHY and current link state are passed as parameters.
     */
    void EMAC_linkStatus( uint phy, uint linkStatus )
    {
        printf("Link Status: %s on PHY %d\n",LinkStr[linkStatus],phy);
    }
    
    

  • Hello again,
    anybody an idea which could be the problem?

    Is it right, that the missing library "ti.drv.emac.aa8fg" is for A8 target and GNU Compiler? Because in my case I use the A8 target, but the TI Compiler.
    Is it possible to rebuild the PDK for A8 target and TI Compiler? I tried this using the prepared makefile, but there are I get the following error:

    make[1]: Entering directory `C:/ti/pdk_am335x_1_0_6/packages/ti/csl'
    gmake libcores SOC=am335x
    process_begin: CreateProcess(NULL, gmake libcores SOC=am335x, ...) failed.
    make (e=2): Das System kann die angegebene Datei nicht finden. (-> system can not found the given file)
    make[1]: *** [am335x_lib] Fehler 2 (-> error 2)
    make[1]: Leaving directory `C:/ti/pdk_am335x_1_0_6/packages/ti/csl'
    make: *** [csl] Fehler 2 (-> error 2)

    I translated the german things above.
    So I don't know which file he is looking for?! But maybe the rebuild of the PDK is not the solution anyway.
  • Mario,

    >>Are there some finalized examples available for AM335x, ICEV2 and NDK?
    yes, there are NIMU and NIMU-ICSS examples in pdk_am335x_1_0_6\packages\ti\transport\ndk\

    >>Is it right, that the missing library "ti.drv.emac.aa8fg" is for A8 target and GNU Compiler?
    yes.

    >>Is it possible to rebuild the PDK for A8 target and TI Compiler?
    We recommend you stick with PDK build default compiler which is GCC_VERSION_ARM_A8=arm-none-eabi-4_9-2015q3.

    Regards,
    Garrett
  • Hello Garret,

    thanks for your response.

    Is there a more detailed guide for the NIMU and NIMU-ICSS examples than this one? processors.wiki.ti.com/.../Processor_SDK_RTOS_NDK

    The suggested software tool-chain for this examples will be the tool-chain from the Processor SDK 3.3.0.4 right?
  • Hello Garrett

    I was able to test the NIMU and the NIMU-ICSS example on my hardware.
    Although, I guess they are very limited regarding their functionality if one wants to set up a tcp communication with a second device.

    This brings me again to the question, if the "Client" example would be the best choice for this purpose. Would you support my way of looking?

    If so, could you give ma a suggestion how to adapt this example for the ICEV2 and the AM3359?
    Because of the fact, that the PDK lib is developed only for the A8 GNU Compiler I changed this one to GNU v4.9.3.
    But, the result are many different errors which are difficult for me to understand.
     
    Attached to this post you will find the build log.

    For this build I used the software tool chain Processor SDK 3.3.0.4

    **** Build of configuration Debug__GNU for project ndk_evmOMAPL138_a8_client ****
    
    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all 
    'Building target: ndk_evmOMAPL138_a8_client.out'
    'Invoking: GNU Linker'
    "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -mcpu=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=vfpv3 -Dam3359 -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,"ndk_evmOMAPL138_a8_client.map" -L"C:/ti/ndk_2_25_01_11/packages/ti/ndk/os/lib" -L"C:/ti/gcc-arm-none-eabi-4_9-2015q3/lib" -L"C:/ti/gcc-arm-none-eabi-4_9-2015q3/include" -L"C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu" -L"C:/ti/pdk_am335x_1_0_6/packages/ti/starterware/binary/soc/lib/am335x-evm/a8/release/gcc" -Wl,--defsym,STACKSIZE=0x1C000 -Wl,--defsym,HEAPSIZE=0x400 -o"ndk_evmOMAPL138_a8_client.out" "./client.o" "./emacHooks.o" "./evminit.o" "./netHooks.o" "./webpage.o" -Wl,-T"../AM335x.lds" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lc -Wl,--end-group 
    makefile:146: recipe for target 'ndk_evmOMAPL138_a8_client.out' failed
    C:\ti\bios_6_46_04_53\packages\gnu\targets\arm\rtsv7A\lib\boot.aa8fg(startup.oa8fg): In function `_fini':
    /db/ztree/library/trees/xdctargets/xdctargets-l07/src/gnu/targets/arm/rtsv7A/startup.c:98: multiple definition of `_fini'
    c:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-ar/thumb/fpu/crti.o:(.fini+0x0): first defined here
    C:\ti\bios_6_46_04_53\packages\gnu\targets\arm\rtsv7A\lib\boot.aa8fg(startup.oa8fg):(.data.__dso_handle+0x0): multiple definition of `__dso_handle'
    c:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-ar/thumb/fpu/crtbegin.o:(.data+0x0): first defined here
    C:\ti\nsp_1_10_03_15\packages\ti\ndk\examples\ndk_omapl138_arm9_examples\ndk_evmOMAPL138_arm9_client\Debug__GNU\configPkg\package\cfg\client_pa8fg.oa8fg: In function `xdc_runtime_SysMin_output(int0_t)':
    C:\ti\nsp_1_10_03_15\packages\ti\ndk\examples\ndk_omapl138_arm9_examples\ndk_evmOMAPL138_arm9_client\Debug__GNU\configPkg/package/cfg/client_pa8fg.c:2348: undefined reference to `_write'
    C:\ti\nsp_1_10_03_15\packages\ti\ndk\examples\ndk_omapl138_arm9_examples\ndk_evmOMAPL138_arm9_client\Debug__GNU\configPkg\package\cfg\client_pa8fg.oa8fg: In function `ti_sysbios_hal_Hwi_HwiProxy_getCoreStackInfo__E':
    C:\ti\nsp_1_10_03_15\packages\ti\ndk\examples\ndk_omapl138_arm9_examples\ndk_evmOMAPL138_arm9_client\Debug__GNU\configPkg/package/cfg/client_pa8fg.c:19432: undefined reference to `ti_sysbios_family_arm_a8_intcps_Hwi_getCoreStackInfo__E'
    C:\ti\ndk_2_25_01_11\packages\ti\ndk\stack\lib\stk6.aa8fg(nimu.oa8fg): In function `NIMUInit':
    /db/vtree/library/trees/ndk/ndk-j08/src/ti/ndk/stack/nimu/nimu.c:1196: undefined reference to `NIMUDeviceTable'
    /db/vtree/library/trees/ndk/ndk-j08/src/ti/ndk/stack/nimu/nimu.c:1196: undefined reference to `NIMUDeviceTable'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-signalr.o): In function `_kill_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/signalr.c:61: undefined reference to `_kill'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-signalr.o): In function `_getpid_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/signalr.c:96: undefined reference to `_getpid'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-writer.o): In function `_write_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/writer.c:58: undefined reference to `_write'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-closer.o): In function `_close_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/closer.c:53: undefined reference to `_close'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-fstatr.o): In function `_fstat_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/fstatr.c:62: undefined reference to `_fstat'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-isattyr.o): In function `_isatty_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/isattyr.c:58: undefined reference to `_isatty'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-lseekr.o): In function `_lseek_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/lseekr.c:58: undefined reference to `_lseek'
    C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu\libc.a(lib_a-readr.o): In function `_read_r':
    /home/xlibrary/trees/gnu/gnu-c04/src/linaro/gcc-arm-none-eabi-4_7-2012q4-20121208/src/newlib/newlib/libc/reent/readr.c:58: undefined reference to `_read'
    collect2.exe: error: ld returned 1 exit status
    gmake: *** [ndk_evmOMAPL138_a8_client.out] Error 1
    gmake: Target 'all' not remade because of errors.
    
    **** Build Finished ****
    

  • Mario,

    From e2e.ti.com/.../2193137, it looks like you have resolved the build error? The error should be caused by the link command file AM335x.lds when changing compiler. The link command file should be removed.

    Regards,
    Garrett
  • Hello Garrett,

    Unfortunately not. Because of the problems with the client example I started to try the NimuBasicExample.

    Regarding your suggestion I removed the link command file.
    But, there is still an error existing. During build I get the error, that the "sys_bios_driverlib" cannot be found, although I added the path to the linker.
    Attached you will find the BuildLog from the console.

    **** Build of configuration Debug__GNU for project ndk_evmOMAPL138_a8_client ****
    
    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all 
    'Building file: ../client.cfg'
    'Invoking: XDCtools'
    "C:/ti/xdctools_3_32_01_22_core/xs" --xdcpath="C:/ti/bios_6_46_04_53/packages;C:/ti/nsp_1_10_03_15/packages;C:/ti/ndk_2_25_01_11/packages;C:/ti/pdk_am335x_1_0_6/packages;C:/ti/edma3_lld_2_12_03_27/packages;C:/ti/ipc_3_40_01_08/packages;C:/ti/uia_2_00_06_52/packages;C:/ti/ccsv6/ccs_base;" xdc.tools.configuro -o configPkg -t gnu.targets.arm.A8F -p ti.platforms.evmAM3359 -r debug -c "C:/ti/gcc-arm-none-eabi-4_9-2015q3" "../client.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring client.xa8fg from package/cfg/client_pa8fg.cfg ...
    generating custom ti.sysbios library makefile ... 
    	Linking with library ti.transport.ndk.nimu:./lib/am335x/a8/release/ti.transport.ndk.nimu.aa8fg
    	Linking with library ti.drv.emac:./lib/am335x/a8/release/ti.drv.emac.aa8fg
    Starting build of library sources ...
    making C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client/src/sysbios/sysbios.aa8fg ...
    gmake[1]: Entering directory `C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client/src/sysbios'
    gmake[1]: Nothing to be done for `all'.
    gmake[1]: Leaving directory `C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client/src/sysbios'
    Build of libraries done.
    cla8fg package/cfg/client_pa8fg.c ...
    'Finished building: ../client.cfg'
    ' '
    'Building file: ../client.c'
    'Invoking: GNU Compiler'
    "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=vfpv3 -Dam3359 -I"C:/ti/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -I"C:/ti/pdk_am335x_1_0_6/packages/ti/drv/emac" -I"C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc/tools" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"client.d" -MT"client.o" -o"client.o" @"configPkg/compiler.opt" "../client.c"
    ../client.c: In function 'main':
    ../client.c:23:1: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
    'Finished building: ../client.c'
    ' '
    'Building file: ../emacHooks.c'
    'Invoking: GNU Compiler'
    "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=vfpv3 -Dam3359 -I"C:/ti/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -I"C:/ti/pdk_am335x_1_0_6/packages/ti/drv/emac" -I"C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc/tools" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"emacHooks.d" -MT"emacHooks.o" -o"emacHooks.o" @"configPkg/compiler.opt" "../emacHooks.c"
    'Finished building: ../emacHooks.c'
    ' '
    'Building file: ../evminit.c'
    'Invoking: GNU Compiler'
    "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=vfpv3 -Dam3359 -I"C:/ti/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -I"C:/ti/pdk_am335x_1_0_6/packages/ti/drv/emac" -I"C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc/tools" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"evminit.d" -MT"evminit.o" -o"evminit.o" @"configPkg/compiler.opt" "../evminit.c"
    'Finished building: ../evminit.c'
    ' '
    'Building file: ../netHooks.c'
    'Invoking: GNU Compiler'
    "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=vfpv3 -Dam3359 -I"C:/ti/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -I"C:/ti/pdk_am335x_1_0_6/packages/ti/drv/emac" -I"C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc/tools" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"netHooks.d" -MT"netHooks.o" -o"netHooks.o" @"configPkg/compiler.opt" "../netHooks.c"
    'Finished building: ../netHooks.c'
    ' '
    'Building file: ../webpage.c'
    'Invoking: GNU Compiler'
    "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=vfpv3 -Dam3359 -I"C:/ti/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/include" -I"C:/ti/pdk_am335x_1_0_6/packages/ti/drv/emac" -I"C:/ti/nsp_1_10_03_15/packages/ti/ndk/examples/ndk_omapl138_arm9_examples/ndk_evmOMAPL138_arm9_client" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc" -I"C:/ti/ndk_2_25_01_11/packages/ti/ndk/inc/tools" -g -gdwarf-3 -gstrict-dwarf -Wall -MMD -MP -MF"webpage.d" -MT"webpage.o" -o"webpage.o" @"configPkg/compiler.opt" "../webpage.c"
    ../webpage.c:46:0: warning: ignoring #pragma DATA_SECTION  [-Wunknown-pragmas]
     #pragma DATA_SECTION(DEFAULT, ".far:NDK_OBJMEM");
     ^
    ../webpage.c:48:0: warning: ignoring #pragma DATA_SECTION  [-Wunknown-pragmas]
     #pragma DATA_SECTION(LOGOBAR, ".far:NDK_OBJMEM");
     ^
    ../webpage.c:50:0: warning: ignoring #pragma DATA_SECTION  [-Wunknown-pragmas]
     #pragma DATA_SECTION(DSPCHIP, ".far:NDK_OBJMEM");
     ^
    ../webpage.c:52:0: warning: ignoring #pragma DATA_SECTION  [-Wunknown-pragmas]
     #pragma DATA_SECTION(SAMPLE, ".far:NDK_OBJMEM");
     ^
    'Finished building: ../webpage.c'
    ' '
    'Building target: ndk_evmOMAPL138_a8_client.out'
    'Invoking: GNU Linker'
    "C:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc.exe" -mcpu=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=vfpv3 -Dam3359 -g -gdwarf-3 -gstrict-dwarf -Wall -Wl,-Map,"ndk_evmOMAPL138_a8_client.map" -nostartfiles -static -Wl,--gc-sections -L"C:/ti/ndk_2_25_01_11/packages/ti/ndk/os/lib" -L"C:/ti/gcc-arm-none-eabi-4_9-2015q3/lib" -L"C:/ti/gcc-arm-none-eabi-4_9-2015q3/include" -L"C:/ti/bios_6_46_04_53/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu" -L"C:/ti/pdk_am335x_1_0_6/packages/ti/starterware/binary/soc/lib/am335x-evm/a8/release/gcc" -L"C:/ti/am335x_sysbios_ind_sdk_1.1.0.4/sdk/os_drivers/lib/" -Wl,--defsym,STACKSIZE=0x1C000 -Wl,--defsym,HEAPSIZE=0x400 -o"ndk_evmOMAPL138_a8_client.out" "./client.o" "./emacHooks.o" "./evminit.o" "./netHooks.o" "./webpage.o" -Wl,-T"configPkg/linker.cmd" -Wl,--start-group -lc -l"C:/ti/am335x_sysbios_ind_sdk_1.1.0.4/sdk/os_drivers/lib/sys_bios_driver.lib" -l:os.aa8fg -lnosys -lm -lrdimon -lsoc -lgcc -Wl,--end-group 
    makefile:152: recipe for target 'ndk_evmOMAPL138_a8_client.out' failed
    c:/ti/gcc-arm-none-eabi-4_9-2015q3/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld.exe: cannot find -lC:/ti/am335x_sysbios_ind_sdk_1.1.0.4/sdk/os_drivers/lib/sys_bios_driver.lib
    collect2.exe: error: ld returned 1 exit status
    gmake: *** [ndk_evmOMAPL138_a8_client.out] Error 1
    gmake: Target 'all' not remade because of errors.
    
    **** Build Finished ****
    

  • Mario,

    Why do you need am335x_sysbios_ind_sdk_1.1.0.4 and its sys_bios_driver.lib in your application?

    Regards,
    Garrett
  • Hello Garrett,

    Before using the GNU Compiler I tried it with the TI Compiler.
    Referring to this post I added this lib: e2e.ti.com/.../1041387

    Without this library I get the following errors:
    /db/vtree/library/trees/ndk/ndk-j08/src/ti/ndk/stack/nimu/nimu.c:1196: undefined reference to `NIMUDeviceTable'
    /db/vtree/library/trees/ndk/ndk-j08/src/ti/ndk/stack/nimu/nimu.c:1196: undefined reference to `NIMUDeviceTable'

    What is your suggestion?

  • Mario,

    Refer to pdk_am57xx_1_0_6/packages/ti/transport/ndk/nimu/example/src/main_idkAM571x.c, you can define NIMUDeviceTable in your code:

    #define MAX_TABLE_ENTRIES 3
    NIMU_DEVICE_TABLE_ENTRY NIMUDeviceTable[MAX_TABLE_ENTRIES];

    The NIMUDeviceTable will be referenced by ndk_x/packages/ti/ndk/stack/nimu/nimu.c.

    am335x_sysbios_ind_sdk_1.1.0.4 is no longer supported and should not be linked in your application.

    Regards,
    Garrett