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.

MSP432E401Y: Flashing vie ethernet and the bsl scripter

Part Number: MSP432E401Y

Hello forum,

I'd like to flash a MSP432E4 via the ethernet. First I want to get a small example script to run. The content of the flash should be strored in a .txt file.

The msp has the address 192.168.1.10 and the raspberry with the bsl-scripter 192.168.1.20.

Here is the small test script:

MODE E4xx Ethernet MAC=08:00:28:5a:8b:7f IPClient=192.168.1.10 IPServer=192.168.1.20
TX_DATA_BLOCK 0x80000 0x1000 inhalt.txt

And here the error message:

bind: Address already in use

I changed the addresses, but i got the same message. How can I get this to run?

Best regards

Guenther

  • Hi Guenther,

    I'll try to find someone who can help with your question.

  • Hello forum,

    I stopped the dnsmasq service of the raspberry. The connection seemes to be ok.

    Now another message appears on the terminal:

    ---------------------------------------------------------
    BSL Scripter 3.4.0.1

    PC software for BSL programming
    2021-Oct-07 09:02:20
    ---------------------------------------------------------
    Input file script is : /home/pi/test.txt

    MODE E4xx Ethernet MAC=50:17:e9:10:00:fd IPClient=192.168.1.10 IPServer=192.168.1.20
            Local IP Address is given in the parameter
            Local IP Address of Host:  192.168.1.20
            Waiting for BOOTP request!
            Waiting for BOOTP request!
            Waiting for BOOTP request!
            Waiting for BOOTP request!
            [ERROR_MESSAGE]No BOOTP request received, exit the BSL-Scripter!

    The host is the raspberry and it is waiting for the BOOTP request, that should be sended by the target, the MSP432E4. See figure 2 on page 7:

    https://www.ti.com/lit/ug/slau655g/slau655g.pdf?ts=1633590323943&ref_url=http%253A%252F%252Fsoftware-dl.ti.com%252F

    Best regards

    Guenther

  • Thank You Gary for this link. I'm able to program the MSP432E4 via ethernet now.

    Is there a way to cause a reset via LAN without pressing the reset button?

    BR Guenther

  • You can try to use the SET_PC command to set the PC to application start address

  • Hello Gary,

    the great idea with setting the PC pointer did not work.

    Here is my example script:

    MODE E4xx Ethernet MAC=50:17:e9:10:00:fd IPClient=192.168.1.11 IPServer=192.168.1.20
    SET_PC_32 0x0002c4e

    The bsl-scripter is still waiting for a BOOTP request.

    BR Guenther

  • Are you sure the 0x0002c4e is the start entry point of the application? Could you help to share the .map file here?

  • No, this is not the entry point. I took an address and set a breakpoint some instructions later. So I wanted to test the PC pointer access.

    I have tried it with the address 0x00000000, but that did not work either.

  • Could you share me the .map file of the application project that you want to download?

  • Hi Gary,

    I did'nt find a .map file. But here is the content of the cmd linker file, maybe this gives You the information:

    --diag_suppress=10199

    --retain=interruptVectors

    MEMORY
    {
    FLASH (RX) : origin = 0x00000000, length = 0x00100000
    SRAM (RWX) : origin = 0x20000000, length = 0x00040000
    }

    /* The following command line options are set as part of the CCS project. */
    /* If you are building using the command line, or for some reason want to */
    /* define them here, you can uncomment and modify these lines as needed. */
    /* If you are using CCS for building, it is probably better to make any such */
    /* modifications in your CCS project and leave this file alone. */
    /* */
    /* --heap_size=0 */
    /* --stack_size=256 */
    /* --library=rtsv7M4_T_le_eabi.lib */

    /* Section allocation in memory */

    SECTIONS
    {
    #ifndef gen_crc_table
    .intvecs: > 0x00000000
    .text : > FLASH
    .const : > FLASH
    .cinit : > FLASH
    .pinit : > FLASH
    .init_array : > FLASH
    #else
    .intvecs: > 0x00000000, crc_table(crc_table_for_intvecs)
    .text : > FLASH, crc_table(crc_table_for_text)
    .const : > FLASH, crc_table(crc_table_for_const)
    .cinit : > FLASH, crc_table(crc_table_for_cinit)
    .pinit : > FLASH, crc_table(crc_table_for_pinit)
    .init_array : > FLASH, crc_table(crc_table_for_init_array)
    .TI.crctab : > FLASH
    #endif

    .vtable : > 0x20000000
    .data : > SRAM
    .bss : > SRAM
    .sysmem : > SRAM
    .stack : > SRAM
    }

    __STACK_TOP = __stack + 512;

    BR Guenther

  • Hello Gary,

    I found the .map file of the bootloader:

    ******************************************************************************
                      TI ARM Linker PC v20.2.0                     
    ******************************************************************************
    >> Linked Wed Oct 20 09:44:46 2021

    OUTPUT FILE NAME:   <boot_serial_emac_flash_MSP_EXP432E401Y_nortos_ccs.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 2000283b


    MEMORY CONFIGURATION

             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      FLASH                 00000000   00010000  0000309c  0000cf64  R  X
      SRAM                  20000000   00010000  00004a24  0000b5dc  RW X


    SEGMENT ALLOCATION MAP

    run origin  load origin   length   init length attrs members
    ----------  ----------- ---------- ----------- ----- -------
    20000000    00000000    00003096   00003096    r-x
      20000000    00000000    000001c0   000001c0    r-- .intvecs
      200001c0    000001c0    00002cb2   00002cb2    r-x .text
      20002e74    00002e74    00000222   00000222    r-- .const
    20003096    00003096    00000006   00000006    rw-
      20003096    00003096    00000006   00000006    rw- .data
    200030a0    200030a0    00001988   00000000    rw-
      200030a0    200030a0    00001585   00000000    rw- .bss
      20004628    20004628    00000400   00000000    rw- .stack


    SECTION ALLOCATION MAP

     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .intvecs   0    00000000    000001c0     RUN ADDR = 20000000
                      00000000    000001c0     bl_startup_ccs.obj (.intvecs)

    .text      0    000001c0    00002cb2     RUN ADDR = 200001c0
                      000001c0    0000108c     uip.obj (.text:uip_process)
                      0000124c    00000320     bl_emac.obj (.text:EnetReconfig)
                      0000156c    000002e0     msp432e4_driverlib.a : sysctl.o (.text:SysCtlClockFreqSet)
                      0000184c    00000270     bl_emac.obj (.text:BOOTPThread)
                      00001abc    000001f8     uip_arp.obj (.text:uip_arp_out)
                      00001cb4    00000150     bl_emac.obj (.text:ParseTFTPData)
                      00001e04    00000140     uip_arp.obj (.text:uip_arp_update)
                      00001f44    00000128     bl_emac.obj (.text:UpdateBOOTP)
                      0000206c    00000110     uip_arp.obj (.text:uip_arp_arpin)
                      0000217c    000000e0     bl_emac.obj (.text:SendBOOTPRequest)
                      0000225c    000000e0     uip.obj (.text:uip_udp_new)
                      0000233c    000000a8     uip.obj (.text:uip_add32)
                      000023e4    000000a6     uip.obj (.text:chksum)
                      0000248a    00000002     --HOLE-- [fill = 0]
                      0000248c    000000a4     bl_emac.obj (.text:PacketReceive)
                      00002530    000000a4     bl_emac.obj (.text:PacketTransmit)
                      000025d4    0000009c     rtsv7M4_T_le_v4SPD16_eabi.lib : memcpy_t2.asm.obj (.text)
                      00002670    0000009c     uip.obj (.text:uip_init)
                      0000270c    00000098     bl_emac.obj (.text:ParseBOOTPReply)
                      000027a4    00000098     bl_startup_ccs.obj (.text)
                      0000283c    00000094     bl_emac.obj (.text:LOCAL_EMACPHYConfigSet)
                      000028d0    00000090     msp432e4_driverlib.a : sysctl.o (.text:_SysCtlFrequencyGet)
                      00002960    00000084     bl_emac.obj (.text:SendTFTPError)
                      000029e4    0000007a     rtsv7M4_T_le_v4SPD16_eabi.lib : memset_t2.asm.obj (.text)
                      00002a5e    00000002     --HOLE-- [fill = 0]
                      00002a60    00000078     bl_emac.obj (.text:SendTFTPGet)
                      00002ad8    00000074     bl_emac.obj (.text:ConfigureEnet)
                      00002b4c    00000070     uip.obj (.text:upper_layer_chksum)
                      00002bbc    0000006c     uip_arp.obj (.text:uip_arp_timer)
                      00002c28    00000054     bl_emac.obj (.text:LOCAL_EMACPHYRead)
                      00002c7c    00000054     uip.obj (.text:uip_add_rcv_nxt)
                      00002cd0    00000044     msp432e4_driverlib.a : sysctl.o (.text:_SysCtlMemTimingGet)
                      00002d14    00000042     bl_check.obj (.text:CheckForceUpdate)
                      00002d56    00000002     --HOLE-- [fill = 0]
                      00002d58    00000040     uip_arp.obj (.text:uip_arp_init)
                      00002d98    00000038     uip.obj (.text:uip_send)
                      00002dd0    0000002c     uip.obj (.text:uip_ipchksum)
                      00002dfc    00000028     bl_emac.obj (.text:SysTickIntHandler)
                      00002e24    00000024     bl_emac.obj (.text:RandomNumber)
                      00002e48    0000001c     uip.obj (.text:htons)
                      00002e64    0000000a     uip.obj (.text:uip_tcpchksum)
                      00002e6e    00000004     bl_emac.obj (.text:NULLThread)

    .const     0    00002e74    00000222     RUN ADDR = 20002e74
                      00002e74    000001b0     msp432e4_driverlib.a : sysctl.o (.const:g_pppui32XTALtoVCO)
                      00003024    00000030                          : sysctl.o (.const:g_sXTALtoMEMTIM)
                      00003054    00000028                          : sysctl.o (.const:g_pui32Xtals)
                      0000307c    00000008                          : sysctl.o (.const:g_pui32VCOFrequencies)
                      00003084    00000006     uip_arp.obj (.const:broadcast_ethaddr)
                      0000308a    00000004     uip.obj (.const:all_ones_addr)
                      0000308e    00000004     uip.obj (.const:all_zeroes_addr)
                      00003092    00000004     uip_arp.obj (.const:broadcast_ipaddr)

    .data      0    00003096    00000006     RUN ADDR = 20003096
                      00003096    00000006     uip.obj (.data:uip_ethaddr)

    .bss       0    200030a0    00001585     UNINITIALIZED
                      200030a0    00000644     (.common:uip_buf)
                      200036e4    00000600     (.common:g_pui8RxBuffer)
                      20003ce4    00000600     (.common:g_pui8TxBuffer)
                      200042e4    00000140     (.common:uip_conns)
                      20004424    00000080     bl_emac.obj (.bss:g_pcFilename)
                      200044a4    00000060     (.common:g_psRxDescriptor)
                      20004504    00000060     (.common:g_psTxDescriptor)
                      20004564    0000002c     bl_emac.obj (.bss)
                      20004590    00000028     (.common:uip_listenports)
                      200045b8    00000010     (.common:uip_udp_conns)
                      200045c8    0000000c     uip_arp.obj (.bss:arp_table)
                      200045d4    00000008     uip.obj (.bss)
                      200045dc    00000006     bl_emac.obj (.bss:g_sMACAddr)
                      200045e2    00000004     bl_emac.obj (.bss:g_sServerAddr)
                      200045e6    00000004     uip_arp.obj (.bss:ipaddr)
                      200045ea    00000004     uip.obj (.bss:iss)
                      200045ee    00000004     uip_arp.obj (.bss)
                      200045f2    00000002     bl_emac.obj (.bss:g_sThread)
                      200045f4    00000004     (.common:g_pConn)
                      200045f8    00000004     (.common:g_ui32RxDescIndex)
                      200045fc    00000004     (.common:g_ui32TxDescIndex)
                      20004600    00000004     (.common:uip_acc32)
                      20004604    00000004     (.common:uip_appdata)
                      20004608    00000004     (.common:uip_conn)
                      2000460c    00000004     (.common:uip_draddr)
                      20004610    00000004     (.common:uip_hostaddr)
                      20004614    00000004     (.common:uip_netmask)
                      20004618    00000004     (.common:uip_sappdata)
                      2000461c    00000004     (.common:uip_udp_conn)
                      20004620    00000002     (.common:uip_len)
                      20004622    00000002     (.common:uip_slen)
                      20004624    00000001     (.common:uip_flags)

    .stack     0    20004628    00000400     UNINITIALIZED
                      20004628    00000400     bl_startup_ccs.obj (.stack)

    MODULE SUMMARY

           Module               code    ro data   rw data
           ------               ----    -------   -------
        .\
           bl_emac.obj          6880    0         3460   
           bl_check.obj         132     0         0      
        +--+--------------------+-------+---------+---------+
           Total:               7012    0         3460   
                                                         
        .\ccs\
           bl_startup_ccs.obj   304     896       0      
        +--+--------------------+-------+---------+---------+
           Total:               304     896       0      
                                                         
        .\uip-1.0\uip\
           uip.obj              10568   16        2041   
           uip_arp.obj          2536    20        20     
        +--+--------------------+-------+---------+---------+
           Total:               13104   36        2061   
                                                         
        C:/ti/simplelink_msp432e4_sdk_4_10_00_13/source/ti/devices/msp432e4/driverlib/lib/ccs/m4f/msp432e4_driverlib.a
           sysctl.o             1896    1056      0      
        +--+--------------------+-------+---------+---------+
           Total:               1896    1056      0      
                                                         
        C:\ti\ccs1000\ccs\tools\compiler\ti-cgt-arm_20.2.0.LTS\lib\rtsv7M4_T_le_v4SPD16_eabi.lib
           memcpy_t2.asm.obj    312     0         0      
           memset_t2.asm.obj    244     0         0      
        +--+--------------------+-------+---------+---------+
           Total:               556     0         0      
                                                         
           Stack:               0       0         1024   
        +--+--------------------+-------+---------+---------+
           Grand Total:         22872   1988      6545   


    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name

    address   name                
    -------   ----                
    2000184d  BOOTPThread         
    20002d15  CheckForceUpdate    
    20002ad9  ConfigureEnet       
    20002835  Delay               
    2000124d  EnetReconfig        
    20002c29  LOCAL_EMACPHYRead   
    20002e6f  NULLThread          
    200027e9  ResetISR            
    2000280b  StartApplication    
    2000156d  SysCtlClockFreqSet  
    20002dfd  SysTickIntHandler   
    20001f45  UpdateBOOTP         
    20000000  Vectors             
    20004a28  __STACK_END         
    00000400  __STACK_SIZE        
    20004a28  __STACK_TOP         
    ffffffff  __TI_pprof_out_hndl
    ffffffff  __TI_prof_data_size
    ffffffff  __TI_prof_data_start
    20000000  __TI_static_base__  
    200029e5  __aeabi_memclr      
    200029e5  __aeabi_memclr4     
    200029e5  __aeabi_memclr8     
    200025d5  __aeabi_memcpy      
    200025d5  __aeabi_memcpy4     
    200025d5  __aeabi_memcpy8     
    200029e7  __aeabi_memset      
    200029e7  __aeabi_memset4     
    200029e7  __aeabi_memset8     
    ffffffff  __binit__           
    ffffffff  __c_args__          
    20004628  __stack             
    2000283b  _c_int00            
    ffffffff  binit               
    20004a28  bss_end             
    200030a0  bss_run             
    00001988  bss_size            
    200045f4  g_pConn             
    200044a4  g_psRxDescriptor    
    20004504  g_psTxDescriptor    
    200036e4  g_pui8RxBuffer      
    20003ce4  g_pui8TxBuffer      
    200045f8  g_ui32RxDescIndex   
    200045fc  g_ui32TxDescIndex   
    20002e49  htons               
    00000000  init_load           
    20000000  init_run            
    0000309c  init_size           
    200025d5  memcpy              
    200029ed  memset              
    20004600  uip_acc32           
    2000233d  uip_add32           
    20004604  uip_appdata         
    2000206d  uip_arp_arpin       
    20002d59  uip_arp_init        
    20001abd  uip_arp_out         
    20002bbd  uip_arp_timer       
    200030a0  uip_buf             
    20004608  uip_conn            
    200042e4  uip_conns           
    2000460c  uip_draddr          
    20003096  uip_ethaddr         
    20004624  uip_flags           
    20004610  uip_hostaddr        
    20002671  uip_init            
    20002dd1  uip_ipchksum        
    20004620  uip_len             
    20004590  uip_listenports     
    20004614  uip_netmask         
    200001c1  uip_process         
    20004618  uip_sappdata        
    20002d99  uip_send            
    20004622  uip_slen            
    20002e65  uip_tcpchksum       
    2000461c  uip_udp_conn        
    200045b8  uip_udp_conns       
    2000225d  uip_udp_new         


    GLOBAL SYMBOLS: SORTED BY Symbol Address

    address   name                
    -------   ----                
    00000000  init_load           
    00000400  __STACK_SIZE        
    00001988  bss_size            
    0000309c  init_size           
    20000000  Vectors             
    20000000  __TI_static_base__  
    20000000  init_run            
    200001c1  uip_process         
    2000124d  EnetReconfig        
    2000156d  SysCtlClockFreqSet  
    2000184d  BOOTPThread         
    20001abd  uip_arp_out         
    20001f45  UpdateBOOTP         
    2000206d  uip_arp_arpin       
    2000225d  uip_udp_new         
    2000233d  uip_add32           
    200025d5  __aeabi_memcpy      
    200025d5  __aeabi_memcpy4     
    200025d5  __aeabi_memcpy8     
    200025d5  memcpy              
    20002671  uip_init            
    200027e9  ResetISR            
    2000280b  StartApplication    
    20002835  Delay               
    2000283b  _c_int00            
    200029e5  __aeabi_memclr      
    200029e5  __aeabi_memclr4     
    200029e5  __aeabi_memclr8     
    200029e7  __aeabi_memset      
    200029e7  __aeabi_memset4     
    200029e7  __aeabi_memset8     
    200029ed  memset              
    20002ad9  ConfigureEnet       
    20002bbd  uip_arp_timer       
    20002c29  LOCAL_EMACPHYRead   
    20002d15  CheckForceUpdate    
    20002d59  uip_arp_init        
    20002d99  uip_send            
    20002dd1  uip_ipchksum        
    20002dfd  SysTickIntHandler   
    20002e49  htons               
    20002e65  uip_tcpchksum       
    20002e6f  NULLThread          
    20003096  uip_ethaddr         
    200030a0  bss_run             
    200030a0  uip_buf             
    200036e4  g_pui8RxBuffer      
    20003ce4  g_pui8TxBuffer      
    200042e4  uip_conns           
    200044a4  g_psRxDescriptor    
    20004504  g_psTxDescriptor    
    20004590  uip_listenports     
    200045b8  uip_udp_conns       
    200045f4  g_pConn             
    200045f8  g_ui32RxDescIndex   
    200045fc  g_ui32TxDescIndex   
    20004600  uip_acc32           
    20004604  uip_appdata         
    20004608  uip_conn            
    2000460c  uip_draddr          
    20004610  uip_hostaddr        
    20004614  uip_netmask         
    20004618  uip_sappdata        
    2000461c  uip_udp_conn        
    20004620  uip_len             
    20004622  uip_slen            
    20004624  uip_flags           
    20004628  __stack             
    20004a28  __STACK_END         
    20004a28  __STACK_TOP         
    20004a28  bss_end             
    ffffffff  __TI_pprof_out_hndl
    ffffffff  __TI_prof_data_size
    ffffffff  __TI_prof_data_start
    ffffffff  __binit__           
    ffffffff  __c_args__          
    ffffffff  binit               

    [77 symbols]

    I think, I should take the address 2000184d, the BOOTP thread.

    BR Guenther

  • How about set PC to 0x2000283 that is the ENTRY POINT SYMBOL: "_c_int00"  address: 2000283b

  • Hello Gary,

    a good idea, the _c_int00 address is the point, where the application starts after a software reset (Control Shift R). But it does'nt work. Here is my .txt file:

    MODE E4xx Ethernet MAC=50:17:e9:10:00:fd IPClient=192.168.1.11 IPServer=192.168.1.20
    SET_PC_32 0x2000283b
    RX_DATA_BLOCK_32 VO_SSM20_v10.3.3.txt

    BR Guenther

  • If I start the command file and additionaly send a command via ethernet, I get the following message:

    SET_PC_32 0x2000283b
            [ERROR_MESSAGE]Command is not available for selected Family

    But https://www.ti.com/lit/ug/slau655g/slau655g.pdf?ts=1635934690462 say, that MSP4xx supports it (table 1, page 5)!

    After deleting the SET command, it works. I have to wait till "Waiting for BOOTP request!" appears on the terminal and then send a special command. Then the interrupts are disabled and

    But this can not be a real solution for the problem.

    How can I set the instruction pointer to a specific address? How can the boot loader be entered via the ethernet line?

    BR Guenther

  • Hi Guenther

    You may need refer to the bootstrap protocol to see if any command support reset function. But I am not familiar about it you may need research by yourself.