浏览网络发现在宝岛台湾的一些网站有很多有趣而且质量高的博客,特意搬过来和大家一起分享学习下。



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
image.png




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相关库运行了。


image.png


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();
  • }
  • 复制代码

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


    3、运行结果

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

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