column_address_space setting for QSPI config block?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

column_address_space setting for QSPI config block?

Jump to solution
656 Views
markhan
Contributor II

I am using blhost to program a KL81 which is connected via QSPI to a Winbond W25Q64JV serial FLASH.  When I program this using blhost, it programs the first 0x100 bytes of serial FLASH correctly, but then it maps areas at 0X100 and higher back to the first 0x100 bytes.  I can change where in the first 0x100 bytes they get programmed by changing the column_address_space configuration setting in the QSPI config block.  How do I determine the correct setting for column_address_space? 

The W25Q64JV uses 3 bytes of address for memory reads and writes.  I have verified in the .srec file that the data is placed in the correct place in the file by the linker.  Page size is 256 bytes and sector size is 0x1000.

0 Kudos
1 Solution
614 Views
markhan
Contributor II

I was able to fix this by changing .word_addressable from 1 to 0 in the QSPI configuration block.  I am now able to write to QSPI FLASH using functions as well as to program QSPI FLASH using blhost and then execute in place (XIP).  I am using __attribute__ ((used,section(".text_Flash2"))) to assign specific functions to be programmed into QSPI FLASH.  This is confirmed by examining the build results showing memory usage, the .srec file, the .map file, and Saleae logic analyzer captures.

I am not able to program or debug QSPI FLASH and XIP from MCUXpresso using a JLink.  I don't know if I have the right .cfx file for the Winbond FLASH, or if there is something else wrong.  I would like to get this working in order to debug our application.

I have not been able to assign an entire .o file to .text_Flash2.  I get many "multiple definition" errors.  I suspect that the same .o file is getting placed in both .text and .text_Flash2.  If I try to use EXCLUDE_FILE, I get syntax errors.  I don't understand .ld syntax well enough to resolve this.

Any help you can give with any of these issues will be appreciated.  Thanks.

View solution in original post

0 Kudos
2 Replies
615 Views
markhan
Contributor II

I was able to fix this by changing .word_addressable from 1 to 0 in the QSPI configuration block.  I am now able to write to QSPI FLASH using functions as well as to program QSPI FLASH using blhost and then execute in place (XIP).  I am using __attribute__ ((used,section(".text_Flash2"))) to assign specific functions to be programmed into QSPI FLASH.  This is confirmed by examining the build results showing memory usage, the .srec file, the .map file, and Saleae logic analyzer captures.

I am not able to program or debug QSPI FLASH and XIP from MCUXpresso using a JLink.  I don't know if I have the right .cfx file for the Winbond FLASH, or if there is something else wrong.  I would like to get this working in order to debug our application.

I have not been able to assign an entire .o file to .text_Flash2.  I get many "multiple definition" errors.  I suspect that the same .o file is getting placed in both .text and .text_Flash2.  If I try to use EXCLUDE_FILE, I get syntax errors.  I don't understand .ld syntax well enough to resolve this.

Any help you can give with any of these issues will be appreciated.  Thanks.

0 Kudos
632 Views
Pavel_Hernandez
NXP TechSupport
NXP TechSupport

Hello, my name is Pavel, and I will be supporting your case, let me get into your case and when I have more information, I will contact you.

Best regards,
Pavel

0 Kudos