QUALCOMM QCC512x 与QCC302X 蓝牙系列量产必备:擦除Flash

QCC512x 与QCC302X基于ADK6.X 的开发,可以用BlueSuite3,当前安装的是BlueSuite 3.2.1 ,可以cd C:\Program Files (x86)\QTIL\BlueSuite 3.2.1 运用CMD 命令

cd C:\Program Files (x86)\QTIL\BlueSuite 3.2.1

NvsCmd erase

 

在调试的过程中,或用NvsApp.exe 进行擦除,如果量产的话需要运用BlueSuite 库来写量产工具,可以参阅BlueSuite 安装路径下的文档,此处用TestFlash 的库运用C语言程序来擦除Flash




1、开发环境设置

开发环境:C++(Microsoft Visual Studio)

头文件:TestFlash.h

库文件:TestFlash.lib

运行环境:Windows 系统,TestFlash.dll 相关DLL,为了使得工具能够运行,可以把TestFlash.dll 相关DLL所在文件夹路径:C:\Program Files (x86)\QTIL\BlueSuite 3.2.1,设置成Path环境变量,这样工具程序就可以动态调用DLL相关库运行了。

 

 

2、开发流程

打开Microsoft Visual Studio 集成开发环境,新建à Win32-> console application,输入Project名BT_Mag_Erase,选择console application—>Empty project->Finish 确认。

添加BT_Mag_Erase.cpp,代码如下:

//以下是擦除 Flash 的参考实例

#include "include\\TestFlash.h"

#include

#include

#include

using namespace std;

static const char* const CFG_DB_PARAM = "hyd.sdb:QCC512X_CONFIG";

int main(int argc, char** argv){

    if (flOpen(-1, 32, 2, TFL_TRB) != TFL_OK)

    {

         cout << "Failed to open TestFlash connection" << endl;

    }

    else

    {

         // Note: TFL_TYPE_STANDARD used for BlueCore ICs only.

#if 1

         if (flSetFlashType(TFL_TYPE_SQIF) != TFL_OK)

         {

             cout << "Failed to set flash type" << endl;

         }

         else

#endif

         {

             bool success = true;

             if (success && flSetSubsysBank(4, 0) != TFL_OK)

             {

                  cout << "Failed to set subsystem and bank" << endl;

                  success = false;

             }

             int32 result = flErase();

             if (result != TFL_OK )

             {

                  success = false;

             }

             if (success)

             {

                  cout << "Erase successful!!" << endl;

             }

             else

             {

                  cout << "Erase fail!" << endl;

             }

             flClose();

         }

    }

    getch();

}

然后把TestFlash.lib 添加进来,就可以编译通过





3、运行结果

QCC512x 与QCC302X 系列的板子,通过 TRBI200连上PC, 运行应用工具,

稍等 1分钟左右,Flash 被擦除

 



★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

蓝牙门诊部Self

蓝牙门诊部Self

2021年1月7日
teConfigCacheInit 调用失败一般是 hyd.sdb 的问题,Bluesuite3.3.4以及后续的版本,没有放sdb 文件,需要找到 sdb 文件,复制过去,注意针对QCC514X系列还不一样,需要如下修改: 1、 static const char* const CFG_DB_PARAM = "hydracore_config.sdb:QCC514X_CONFIG"; 2、将工程源代码里的..\514x\adk\bin\qcc514x_qcc304x目录下的hydracore_config.sdb文件,拷贝至BlueSuite的安装目录和量产工具的目录下。
张工

张工

2020年5月19日
空的FLASH,会有问题
Derek

Derek

2019年12月2日
Hi,
我們想用TestEngine來做寫入Bluetooth device Address功能, openTestEngine()是成功的, 但在call "int32 success = teConfigCacheInit(handle, CFG_DB_PARAM);" 傳回值為0, 表示error, 與您的定義相同"static const char* const CFG_DB_PARAM = "hyd.sdb:QCC512X_CONFIG";" 不知這方面的問題是否有何建議? 謝謝!