Possible bug for wiced_dct_restore_factory_reset in SDK-3.5.2 & 3.7.0

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

cross mob
JeGu_2199941
Level 5
Level 5
25 likes received 10 likes received 10 likes given

This is NOT a duplicate of this issue : Possible bug in wiced_dct_restore_factory_reset()

In bootloader there is a mechanism to trigger "back to factory default", which is like this:

    if ( wiced_waf_check_factory_reset( ) )

    {

        wiced_dct_restore_factory_reset( );

        wiced_waf_app_set_boot( DCT_FR_APP_INDEX, PLATFORM_DEFAULT_LOAD );

    }

Trace down to "WICED/platform/MCU/wiced_dct_internal_common.c : static wiced_result_t wiced_dct_load( const image_location_t* dct_location )" I see a possible bug :

    while ( size > 0 )

    {

        uint32_t write_size = MIN( sizeof(buff), size);

#ifdef KEEP_POSSIBLE_STOCK_SDK_BUGS // same possible bug for SDK-3.7.0

        if (wiced_apps_read( dct_location, buff, offset, write_size) != 0)

#else

        if (wiced_apps_read( dct_location, buff, offset, write_size) == 0)

#endif

        {

            if (platform_write_flash_chunk( (uint32_t)dest_loc, buff, write_size ) != 0)

            {

                return WICED_ERROR;

            }

        }

        offset   += write_size;

        dest_loc += write_size;

        size     -= write_size;

    }

With the original code I never successfully done restoring DCT.

And the modified version above seems to work well in my tests so far.

Cypress team :

1. Please help confirm if this is a bug, and if the fix above is valid & solid in all cases.

2. Is it possible to have a official git, which is bound w/ WICED forum accounts maybe, so we can send pull requests for possible bug fixes?

    It will be definitely beneficial to us developers to collect & examine all possible bug / fixes spread out there in forum discussions.

    I believe Cypress will also profit from something like this.

    Or maybe you can consider some other related suggestions such as Do you consider to make pre-release SDK public ?

7 Replies
AxLi_1746341
Level 7
Level 7
10 comments on KBA 5 comments on KBA First comment on KBA

xavier@candyhouse wrote:

Trace down to "WICED/platform/MCU/wiced_dct_internal_common.c : static wiced_result_t wiced_dct_load( const image_location_t* dct_location )" I see a possible bug :

    while ( size > 0 )

    {

        uint32_t write_size = MIN( sizeof(buff), size);

#ifdef KEEP_POSSIBLE_STOCK_SDK_BUGS // same possible bug for SDK-3.7.0

        if (wiced_apps_read( dct_location, buff, offset, write_size) != 0)

#else

It is obviously a bug.

Thanks for point it out, this saves a lot of time for me.

AxLi_1746341
Level 7
Level 7
10 comments on KBA 5 comments on KBA First comment on KBA

xavier@candyhouse wrote:

Cypress team :

1. Please help confirm if this is a bug, and if the fix above is valid & solid in all cases.

2. Is it possible to have a official git, which is bound w/ WICED forum accounts maybe, so we can send pull requests for possible bug fixes?

    It will be definitely beneficial to us developers to collect & examine all possible bug / fixes spread out there in forum discussions.

    I believe Cypress will also profit from something like this.

    Or maybe you can consider some other related suggestions such as Do you consider to make pre-release SDK public ?

I don't expect Cypress to setup a public git for the SDK code.

It's their proprietary software anyway.

However, I do think the Cypress team can improve the way to co-work with

other developers on the forum.

When people reports a bug, the official team should at least response if

it's a valid bug report or not. If people got feedback from officail team for a

valid bug report, it's clear someone will take care the issue and it should

be fixed in next release.

When people submit patches, it's would be great if the official team can

response if it's correct or not.

And one important thing is if people reported a valid bug in "binary release code",

it needs to be fixed quickly. The users on the forum cannot workaround the

issue in "binary release code" by themselves.

0 Likes

I will start a discussion with the internal Engineering/Apps team.  The problem is less related to systemic implementation, but more problematic when it comes to resources since creating something like this sets the expectation that we test all bugs reported from the Broad Market then provide feedback on status and resolution.

Again, I will start the discussion.

mwf_mmfae​ :
Thank you for your effort.

Another approach may be maintaining a known bug / fix list as a document or discussion on forum.

Perhaps this involves less resource from Cypress.

0 Likes

xavier@candyhouse wrote:

mwf_mmfae :
Thank you for your effort.

Another approach may be maintaining a known bug / fix list as a document or discussion on forum.

Perhaps this involves less resource from Cypress.

I disagree.

I sent a couple issues about latest SDK, and turn out most

of the issues does not get any response from official team.

The result is I stop reporting issues if I can fix it by myself.

As I said before, the support is actually mutually directions.

If people don't get response, people might just go away. 

It's important that official team to interactive with other developers on the forum.

In additional, maintaining a stable release is better than maintaining a known bug / fix list.

Anonymous
Not applicable

Hi. Yes it bug. I found same bug at previous week too.

Thank you.

0 Likes
Anonymous
Not applicable

Why bug fix is not applied to new SDK?

User  spends time with stupid way.

TKS