Source code for programming Parallel NOR Flash (S29GL01GS, S29GL256S)

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
CHKA_4329876
Level 2
Level 2
First like given Welcome!

I am using  Source code for programming Parallel NOR Flash (S29GL01GS, S29GL512S)  in one of my project and I need the source code and driver files and also the header file .

0 Likes
1 Solution
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hi,

I hope you are asking for the low level driver for our GL-S family of devices. You can download it from following link: https://www.cypress.com/documentation/software-and-drivers/low-level-driver-nor-flash?source=search&... .

Thanks and Regards,

Sudheesh

View solution in original post

0 Likes
3 Replies
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hi,

I hope you are asking for the low level driver for our GL-S family of devices. You can download it from following link: https://www.cypress.com/documentation/software-and-drivers/low-level-driver-nor-flash?source=search&... .

Thanks and Regards,

Sudheesh

0 Likes

Hi ,

I am asking for source files .c , .h that has the source code for a Microcontroller connected to 32 MB Parallel flash to write and read . similar to following code

uint16_t NOR_FLASH_erase_sector( uint32_t start, uint32_t length )

{

uint32_t addr;

uint32_t end;

volatile uint16_t* addr16;

end = start + length - 1; // Calculate end of range

start &= 0xFFFFFFFE; // Align to 16-bit words

/*

* Erase each Flash block in the range

*/

for ( addr = start ; addr <= end ; addr += FLASH_PAGESIZE )

{

addr16 = ( volatile uint16_t* )addr;

*addr16 = FLASH_RESET; // Reset Flash

FLASH_CTL555 = FLASH_CMD_AA;

FLASH_CTL2AA = FLASH_CMD_55;

FLASH_CTL555 = FLASH_ERASE; // Erase sector command

FLASH_CTL555 = FLASH_CMD_AA;

FLASH_CTL2AA = FLASH_CMD_55;

*addr16 = FLASH_ERASE_SECTOR; // Erase sector confirm

#ifdef EMIF_USE_REORDER_FIX

EMIF_REVID = 0;

#endif

if ( _FLASH_waitWhileErasing( addr, timeout ) )

{

*addr16 = FLASH_RESET;

return 0;

}

}

return 0;

}

0 Likes

Hi,

We do not have example code for interfacing our flash devices with different controller devices. The low level function for writing and reading from flash devices will be different from one controller to another. You can add these function depending upon your controller to our LLD and use it in your application. Please feel free to ask, if you need any assistance to use our LLD.

Thanks and Regards,

Sudheesh

0 Likes