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.

[参考译文] DLPC3478:写闪存模式不适用于特定大小。

Guru**** 2535750 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/dlp-products-group/dlp/f/dlp-products-forum/1514506/dlpc3478-the-write-a-flash-pattern-doesn-t-work-with-specific-sizes

部件号:DLPC3478

工具/软件:

您好:

 使用以下代码上传闪存时遇到以下问题:

/* write up to 1024 bytes of data */
uint8_t PatternDataArray[1024];

/* Pattern File assumes to be in the \build\vs2017\dlpc347x folder */
s_FilePointer = fopen(arxiu, "rb");
if (!s_FilePointer)
{
    //printf("Error opening the binary file!");
    return;
}
fseek(s_FilePointer, 0, SEEK_END);
uint32_t PatternDataSize = ftell(s_FilePointer);
fseek(s_FilePointer, 0, SEEK_SET);

/* Select Flash Data Block and Erase the Block */
DLPC34XX_DUAL_WriteFlashDataTypeSelect(DLPC34XX_DUAL_FDTS_ENTIRE_SENS_PATTERN_DATA);
DLPC34XX_DUAL_WriteFlashErase();

/* Read Short Status to make sure Erase is completed */
DLPC34XX_DUAL_ShortStatus_s ShortStatus;
do
{
    DLPC34XX_DUAL_ReadShortStatus(&ShortStatus);
} while (ShortStatus.FlashEraseComplete == DLPC34XX_DUAL_FE_NOT_COMPLETE);

DLPC34XX_DUAL_WriteFlashDataLength(1024);
fread(PatternDataArray, sizeof(PatternDataArray), 1, s_FilePointer);
DLPC34XX_DUAL_WriteFlashStart(1024, PatternDataArray);

int32_t BytesLeft = PatternDataSize - 1024;
do
{
    fread(PatternDataArray, sizeof(PatternDataArray), 1, s_FilePointer);
    DLPC34XX_DUAL_WriteFlashContinue(1024, PatternDataArray);

    BytesLeft = BytesLeft - 1024;
} while (BytesLeft > 0);

fclose(s_FilePointer);

我进行下一个测试:

使用1024 字节块大小->正确

使用512 字节块大小->正确

使用256 字节块大小->正确

使用128 字节块大小-> Ko  

使用260字节块大小-> Ko

我想用四倍的限制来确定块大小,但这不适用于260字节。 为了满足电子要求、我们需要一个小于32字节且可被4整除的数字。 我们是否需要考虑任何其他限制、以帮助我们决定此块大小?

可以帮帮我吗? 谢谢你。

此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kevin:

    我将把这个主题分配给 DLPC347x 芯片组方面的一位专家。

    为防止我无法正确理解、它是小于还是等于所需的32 (<=32)字节还是小于32 (<32)字节?

    我们的专家应该能够确认这一点,但它似乎你需要你的块大小是1024的倍数,但也大于或等于256。 请参阅以下原线程中推荐的编程指南 Aaron 中的注释。

    让我们给我们的专家一两天时间来查看和回复这条消息。

    谢谢。此致、
    Michael Ly

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    实际上、我们需要大小等于或小于24字节。 (最多32字节、为我们的消息包保留8字节)。

    我阅读此通信:

    文档指定可能是四个数字的任意倍数、这是可能的吗? 或者我想说什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Kevin、

    抱歉、文档说"闪存数据长度必须是四字节的倍数。" 这并不意味着可以有四个数字的任意倍数。

    正如在 原始 POST 中得出的结论、数据长度值不能小于256字节。

    此致、

    Aaron