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.

CCS/RM48L952: rm48l952

Part Number: RM48L952
Other Parts Discussed in Thread: HALCOGEN

Tool/software: Code Composer Studio

Dear Sir,

Can you please send any working code for UART Bootloader for RM48L952 evaluation board.

Best Regards,

Praveena M

  • Hello Wang,

    Can you please send your application code in which SCI is working there.

    We will check here.

    Can you please give any suggestion for the interrupt to work in our application.

    Thanks and Regards,

    Praveena M

  • Hi Wang,

    Can you please send your application code in which SCI is initialized and is working there, so that we can check here.

    Here, in our application code interrupts are working fine. But, when we load the code through UART Boot Loader code, our application is not running.

    Please, help us to solve the issues.

    Thanks and Regards,

    Praveena M. 

  • Hello,

    Nothing special. I just added sciInit() to main() in my application. The RX INT is enabled in sciInit(). 

  • Hi Wang,

    We had given the same configuration, but still RX INT is not working. So, please send your code in which RX INT is working.

    Thanks and Regards,

    Praveena M

  • Hello Wang,

    Can you please send your working application code (RX INT- sciInit()). We are eagerly waiting for your reply, because we are facing this issue from longtime(more than 2 months).

    In our application code interrupt and SCI init is not working (if we load the code through UART Boot Loader).

    So, please help us to solve this issues.

    Thanks and Regards,

    Praveena M

  • This is the file used in my RM48 UART bootloader test. The RX INT is enabled in my application test code.

    /** @file sys_main.c 
    *   @brief Application main file
    *   @date 11-Dec-2018
    *   @version 04.07.01
    *
    *   This file contains an empty main function,
    *   which can be used for the application.
    */
    
    /* 
    * Copyright (C) 2009-2018 Texas Instruments Incorporated - www.ti.com 
    * 
    * 
    *  Redistribution and use in source and binary forms, with or without 
    *  modification, are permitted provided that the following conditions 
    *  are met:
    *
    *    Redistributions of source code must retain the above copyright 
    *    notice, this list of conditions and the following disclaimer.
    *
    *    Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in the 
    *    documentation and/or other materials provided with the   
    *    distribution.
    *
    *    Neither the name of Texas Instruments Incorporated nor the names of
    *    its contributors may be used to endorse or promote products derived
    *    from this software without specific prior written permission.
    *
    *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
    *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
    *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
    *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
    *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
    *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    */
    
    
    /* USER CODE BEGIN (0) */
    /* USER CODE END */
    
    /* Include Files */
    
    #include "sys_common.h"
    
    /* USER CODE BEGIN (1) */
    #include "rti.h"
    #include "gio.h"
    #include "het.h"
    #include "sci.h"
    /* USER CODE END */
    
    /** @fn void main(void)
    *   @brief Application main function
    *   @note This function is empty by default.
    *
    *   This function is called after startup.
    *   The user can use this function to implement the application.
    */
    
    /* USER CODE BEGIN (2) */
    #define  TSIZE1 13
    uint8  TEXT1[TSIZE1]= {'A','P','P','L','I','C','A','T','I','O','N','!',' '};
    
    void sciDisplayText(sciBASE_t *sci, uint8 *text, uint32 length);
    void wait(uint32 time);
    /* USER CODE END */
    
    int main(void)
    {
    /* USER CODE BEGIN (3) */
        /* Initialize RTI driver */
        rtiInit();
        sciInit();
    
        /* Set high end timer GIO port hetPort pin direction to all output */
        gioSetDirection(hetPORT1, 0xFFFFFFFF);
    
        /* Enable RTI Compare 0 interrupt notification */
        rtiEnableNotification(rtiNOTIFICATION_COMPARE0);
    
        /* Enable IRQ - Clear I flag in CPS register */
        /* Note: This is usually done by the OS or in an svc dispatcher */
        _enable_IRQ();
    
        sciDisplayText(scilinREG,&TEXT1[0],TSIZE1);   /* send text code 1 */
    
        /* Start RTI Counter Block 0 */
        rtiStartCounter(rtiCOUNTER_BLOCK0);
    
        /* Run forever */
        while(1);
    
    /* USER CODE END */
    
        return 0;
    }
    
    
    /* USER CODE BEGIN (4) */
    /* Note-You need to remove rtiNotification from notification.c to avoid redefinition */
    void rtiNotification(uint32 notification)
    {
    /*  enter user code between the USER CODE BEGIN and USER CODE END. */
        /* Toggle HET pin 0 */
        gioSetPort(hetPORT1, gioGetPort(hetPORT1) ^ 0x00000001);
    }
    
    void sciDisplayText(sciBASE_t *sci, uint8 *text,uint32 length)
    {
        while(length--)
        {
            while ((sci->FLR & 0x4) == 4); /* wait until busy */
            sciSendByte(sci,*text++);      /* send out text   */
        };
    }
    /* USER CODE BEGIN (4) */
    /* USER CODE END */
    

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/81/RM48Lx_5F00_rtiBlinky_5F00_BL_5F00_APP10020.hcg

  • Hi Wang,

    We copied your main.c file in our application, in debugging mode it is working fine. (It is printing APPLICATION also).

    But, when we generate .bin file and load through UART Boot Loader it is not working.

    Here, in sys_link.cmd(), we changed vector and flash 

        VECTORS (X) : origin=0x00010020 length=0x00000020
        FLASH0 (RX) : origin=0x00010040 length=0x0016FFB0

    We changed our Application Start Address as, (#define APP_START_ADDRESS        0x00010040) in our UART Boot Loader Code.

    It is not working, means our application is not running. Please, help us to solve this issue.

    Thanks and Regards,

    Praveena M

    SCI.rar

  • No problem on my side. After powering cycle the board, the led is blinking.

  • Hi Wang,

    Here also when we load the code directly it is working fine.

    But, our issue is when we generate .bin file and load through UART Boot Loader code, our application is not working.

    Once, can you please generate the .bin file and load it through UART Boot Loader, there is an issue (Led is not blinking).

    Please, provide us your contact number to discuss our problem directly. Our project is stopped for more than 2 months because of this UART Boot Loader.

    Kindly, help us to solve this issue.

    Thanks and Regards,

    Praveena M

  • Hi Wang,

    We are waiting for ur reply to solve this issue.

    Thanks and Regards,

    Praveena M

  • Hello Praveena,

    Can you post your bootloader and application? 

    If the VECTOR is mapped to 0x10020, the APP_START_ADDRESS in bootloader should be 0x10020 rather than 0x10040

  • Hi Wang,

    This is UART Boot Loader Code,

    RM48HDK_UART_Bootloader.rar

    This is our Application Code,

    SCI_HET_GPIO_Interrupt.rar

    Please, load the code (.bin file),  through UART Boot Loader, our application is not working.

    Please, help us to solve this issue.

    Thanks & Regards,

    Praveena M.

  • Hi Wang,

    We had posted our UART Bootloader Code and Application Code, in the previous mail.

    Please, check once and reply us as soon as possible.

    Thanks and Regards,

    Praveena M

  • I will test you code

  • Hi Wang,

    Thank you for your response.

    Please, reply us as soon as possible.

    Thanks & Regards,

    Praveena M.

  • Hello Praveena,

    1. Mentioned before, you need to modify the linker cmd file for the application:

        MEMORY
        {
            VECTORS (X) : origin=0x00010020 length=0x00000020
            FLASH0 (RX) : origin=0x00010040 length=0x0016FFC0
            FLASH1 (RX) : origin=0x00180000 length=0x00180000
            STACKS (RW) : origin=0x08000000 length=0x00001500
            RAM (RW) : origin=0x08001500 length=0x0003EB00

         }

    2. Please using the following approach to generate binary file.  

        script in post-build steps: "${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

  • https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/81/GPIO_5F00_SCI_5F00_HET.bin

    this is working binary for your application project.

  • Hi Wang,

    Thank you so much for your support.

    Now, it is working fine.

    Thanks & Regards,

    Praveena M.

  • Hello Praveena,

    I am glad that the issue has been solved. Please click "Resolved" button whenever the issue is resolved. Thanks