Quantcast
Viewing all articles
Browse latest Browse all 63778

Forum Post: RE: MSP-FET for MSP432 BSL

Hi Jim, Let me try to address your multiple questions. [quote user="Jim Patten"]I looked at the C file you posted. It looks like you're using Port0, Pin5 as the BSL invocation. Is that correct?[/quote] I think you meant Port1 Pin5 and yes that is correct. [quote user="Jim Patten"]So my question is: unlike the FR5969 (and other MSP's), if I get a blank MSP432P4xx from production, never been programmed, I cannot use the BSL H/W Invocation since its all F's?? If so, why is the appNote SLAU622 on page 16, Figure 6 showing P1.0?[/quote] If you get a blank MSP432P4xx, the BSL will be called by the ROM bootcode (memory is erased). The bootcode reads out addresses 0x0 and 0x4 from the application flash memory and compares it with 0xFFFFFFFF to determine whether or not the application memory is erased. So in this case, with or without HW entry the BSL will be called. In regards to SLAU622 showing P1.0, it is just a HW entry example when P1.0 is configured AND the application memory is NOT erased. [quote user="Jim Patten"]One more thing, with the file you posted, I still cannot get the BSL to talk to the BSL_Scripter.exe version 3.1.0.0. I assume I should be using P0.5, pulling it high while holding the RSTn switch on the Launchpad dev board?[/quote] Are using the Launchpad and the UART Backchannel? In my case I have a jumper wire connected from P1.5 to 3.3V and then I press/release the reset button. After that I run the bsl scripter like this (please make sure to add the PARITY option on the mode, needed if you are using the LP BackChannel): D:\MSPBSL_Scripter_win\BSL_Scripter_Windows\ScriptExample\P4xx_uart>..\..\bsl-scripter-windows.exe script_P4xx_uart_ver.txt --------------------------------------------------------- BSL Scripter 3.1.0.0 PC software for BSL programming 2016-Jun-03 12:21:16 --------------------------------------------------------- Input file script is : D:/MSPBSL_Scripter_win/BSL_Scripter_Windows/ScriptExample /P4xx_uart/script_P4xx_uart_ver.txt // //Script example MSP432 UART BSL //Software : BSL Scripter 3.1.0.0 //Device : MSP432P401R //Comm Bridge: XDS110 - MSP432LP BackChannelUART // for this setting, the parity need to be // set from Scripter side // When MSP-BSL Rocket is used, parity will be // generated by the Rocket // //Download blink application to //MSP432 device through UART BSL // //LOG MODE P4xx UART 9600 COM44 PARITY Initialization of BSL P432 succeed... RX_PASSWORD_32 pass256_wrong.txt Read Txt File : D:/MSPBSL_Scripter_win/BSL_Scripter_Windows/ScriptExample/P4xx_uart/pass256_wrong.txt Password is incorrect. RX_PASSWORD_32 pass256_default.txt Read Txt File : D:/MSPBSL_Scripter_win/BSL_Scripter_Windows/ScriptExample/P4xx_uart/pass256_default.txt Password is correct. MASS_ERASE Mass erase done. RX_DATA_BLOCK_32 BlinkLED_MSP432P401R.txt Read Txt File : D:/MSPBSL_Scripter_win/BSL_Scripter_Windows/ScriptExample/P4xx_uart/BlinkLED_MSP432P401R.txt Time elapsed of writing 4391 bytes : 5.421 seconds Speed of writing data :0.791(kB/s) Data received by BSL. TX_BSL_VERSION_32 BSL Version is : BSL_Vendor[e01],CI[200],API[300],PI[201],Build_ID[300] REBOOT_RESET D:\MSPBSL_Scripter_win\BSL_Scripter_Windows\ScriptExample\P4xx_uart> [quote user="Jim Patten"]That said, I'm following the code example of AppNote SLAA659 and notice when I pass in COMMAND_BSL_CONFIG (0x00020000), the code (result = BOOT_OVERIDE_OPERATION_FAIL) returns failure:[/quote] The reason is because the ROM boot code is not being called, so you will need a different class of reset (POR/Reboot - please take a look at the RSTCTL chapter in the Technical Reference Manual). So please change your code to: #include #include "flashmailbox.h" #include "driverlib.h" volatile bool forceReboot = false; int main(void) { volatile uint32_t i; WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer P1DIR |= BIT0; if(CheckAndEraseFlashMailbox(COMMAND_BSL_CONFIG) != BOOT_OVERRIDE_AND_MAILBOX_ERASE_OPERATIONS_SUCCESS) { while(1) { for(i = 0; i < 10000; i++); P1OUT ^= BIT0; if (forceReboot) { MAP_SysCtl_rebootDevice(); } } } else { P1OUT |= BIT0; } while(1); } "MAP_SysCtl_rebootDevice" should perform a reboot and the ROM boot code will be called. [quote user="Jim Patten"]This is what I assume: 1.) The H/W invocation of getting into the BSL from toggling RST/Port_X.X is not available (like on the other MSP430 micro's) because the BOM comes from the Factory erased and needs to be JTAG'ed with code to put in (stating the BSL_PARAMS to act upon).[/quote] Yes this is correct, but by default if the memory is erased, the BSL will get called. [quote user="Jim Patten"]I still cannot BSL the via P1.5 on the Launchpad (0x7C48DF50). [/quote] 1. Please make sure that you are using the PARITY on the MODE 2. Try again after you erased the application flash 3. Confirm that the BSL has not been erased, read location 0x00202000 4. Confirm that your Mailbox has the correct start address and it also enables the BSL /*-------BSL Configuration Group-------------------------*/ /* BSL Enable * 0xFFFFFFFF: Disable * 0x00000000: Enable */ // 0xFFFFFFFF, 0x00000000, /* BSL Starting address, default pointing to TI BSL at 0x00202000 */ // 0xFFFFFFFF, 0x00202000, /* BSL Parameter * Use HW Invoke on Port 1, Pin 5, on HIGH * Use UART */ BSL_CONFIG_HW_INVOKE_PORT1 | BSL_CONFIG_HW_INVOKE_PIN5 | BSL_CONFIG_HW_INVOKE | BSL_CONFIG_HW_INVOKE_PIN_HIGH | BSL_CONFIG_INTERFACE_UART, [quote user="Jim Patten"]I also cannot see the data at address 0x00200000 using IAR[/quote] Please add the compiler directives __root const (in msp432_flashmailbox.c) #elif defined (__ICCARM__) /* IAR Compiler */ __root const uint32_t FlashMailBox [] @ 0x00200000 = Hopefully this helps. David

Viewing all articles
Browse latest Browse all 63778

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>