cc2640 用命令行方式烧录

1.Flash Programmer 2E:\Program Files (x86)\Texas Instruments\SmartRF Tools\Flash Programmer 2\doc\help)的帮组文档中我们可以看到cc2640是可以用命令行的方式烧录的

 

我们使用的命令是:

srfprog -t socXDS-06EB12100300ACC2538-e -p -v -fc\ test.hex

 

-t 后面是指定烧录目标

-e 表示擦除全部扇区

-p 表示在源文件中编程所有页面

-v 表示烧录检查默认是CRC check

-f 后面表示烧录用的hex文件

 

这些参数和Flash Programmer 2中所对应的参数是一一对应的

 

但是在烧录时如果我们在-f 参数后跟应用hex文件和协议栈的文件这样烧录是不会成功的,通过查看Flash Programmer 2的烧录日志我们可以发现它是将两个文件读入后合并再一起烧写的,但是它是怎样拼接两个文件我们不得而知

 

不过Flash Programmer 2给我们提供了一个功能,它可以读取flash中的数据并保存成文件

所以我们反其道而行之读取了flash中的文件保存成hex格式文件, 然后我们把读出的文件重新烧录发现成功了

 

 

 

下面是烧录日志:

-----------------------------------------------------------------------------------------------

>Initiate access to target: XDS-00000540.

>Reading file: F:/mywork/c2640/cc2640_code/ti/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/SimpleBLEPeripheral/CC26xx/IAR/Application/CC2640/FlashROM/Exe/SimpleBLEPeripheralAppFlashROM.hex.

>Reading file: F:/mywork/c2640/cc2640_code/ti/simplelink/ble_cc26xx_2_00_00_42893/Projects/ble/SimpleBLEPeripheral/CC26xx/IAR/Stack/CC2640/FlashROM/Exe/SimpleBLEPeripheralStackFlashROM.hex.

>Start flash erase ...

>Erase finished successfully.

>Start flash programming ...

>Programming finished successfully.

>Start flash verify ...

>Skip verification of unassigned page: 7.

>Skip verification of unassigned page: 8.

>Skip verification of unassigned page: 9.

>Skip verification of unassigned page: 10.

>Skip verification of unassigned page: 11.

>Skip verification of unassigned page: 12.

>Skip verification of unassigned page: 13.

>Page: 0 verified OK.

>Page: 1 verified OK.

>Page: 2 verified OK.

>Page: 3 verified OK.

>Page: 4 verified OK.

>Page: 5 verified OK.

>Page: 6 verified OK.

>Page: 14 verified OK.

>Page: 15 verified OK.

>Page: 16 verified OK.

>Page: 17 verified OK.

>Page: 18 verified OK.

>Page: 19 verified OK.

>Page: 20 verified OK.

>Page: 21 verified OK.

>Page: 22 verified OK.

>Page: 23 verified OK.

>Page: 24 verified OK.

>Page: 25 verified OK.

>Page: 26 verified OK.

>Page: 27 verified OK.

>Page: 28 verified OK.

>Page: 29 verified OK.

>Page: 30 verified OK.

>Page: 31 verified OK.

>Verification finished successfully.

>Reset target ...

>Reset of target successfull.

-----------------------------------------------------------------------------------------------

部分命令参考:

命令行界面(CLI

命令行界面在脚本控制编程时可能很有用。Flash版本的CLI版本与GUI版本具有相同的功能。

如果没有任何参数启动CLI,则会列出CLI版本的所有可用选项。见下图。

 

 

 

可以通过单击GUI右上角的工具图标来启动命令行界面窗口。将启动一个命令窗口,其中使用CLI可执行文件的位置更新环境变量(路径)。只有启动CLI版本的Flash编程器才需要可执行文件的名称。

CLI选项

Flash Programmer支持以下命令行选项

> srfprog [Target] [Actions] [File] [Address]

参数的顺序是无关紧要的。

具体选项的说明可以通过以下方式获得:

> srfprog -h [target | 动作| 文件| 地址| 示例| 帮帮我]

只需要两个第一个字母:例如:srfprog -h ta

帮助符号:

[]

方括号用于可选参数。

%%

用于替换符号的百分比标记。

{}

用于需要其中一个选项的卷曲括号。

|

垂直条可供选择。

目标:{-t | --target} [soc | lsidx]
   soc(%device id[,%chip id]SoC Device
       %设备ID%:已连接EB的设备ID。此参数区分大小写。
       %芯片ID%:芯片ID。如果没有给出XDS仿真器设备,
                    探测确定连接的SoC将是
                    执行,这将需要更长的时间。
                    芯片IDCOM设备结合使用是必需的。
   lsidx(%index%)列表索引
      index%:从list命令返回的已连接设备的索引。
-------------------------------------------------- -----------------------------
操作:[-ls | --list] | [-e | --erase] | [-p |  - 程序] |
         [-v | --verify] | [-r | --read] | [-w |  - ] |
         [-k | --keep] | [-c | --change] | [-rs | --reset] |
         [-j4 | --jtag4]
  {-ls | --list} [min | 全部| 汽车]
    min:列出连接的Cebal设备(默认)。
    全部:列出所有连接的设备。
    自动:列出所有连接的设备,并自动尝试查找芯片ID
          用于基于ARM的设备。
  {-e | --erase} [all | p | pif | epfw | ep | 强制]
    全部:清除所有未保护的页面(默认)。
    p(%pages%):擦除给定的页面。
    pif:清除源文件中的页面。
    强制:强制质量擦除。不能合并
                 其他行为。
  {-p | --program} [all | epfw | EP]
    全部:在源文件(默认)中编程所有页面。
    epfw(%value%):从给定值填充的源文件中排除页面。
    ep(%pages%):从源文件中排除给定的页面。
  {-v | --verify} [crc | rb] [pif | 全部| epfw | EP]
    crc:使用CRC校验和验证页面(默认)。
    rb:使用回读和对位比较验证页面。
    all:验证源文件中的所有页面(默认)。
    epfw(%value%):从给定值填充的源文件中排除页面。
    ep(%pages%):排除给定页面。
  {-r | --read} [all | p | addr | macpri | macpri154 | macprible |
                 macsec | macsec154 | macsecble]
    全部:阅读所有页面(默认)。输出到文件。
    p(%页%):阅读给定页面。输出到文件。
    ADDR0X%地址%,%长度%):
                   从给定的地址读取给定的长度。
    macpri:读取主要IEEE 802.15.4 MAC地址。
    macpri154:读主要IEEE 802.15.4 MAC地址。
    macprible:读取主BLE MAC地址。
    macsec:读取次要IEEE 802.15.4 MAC地址。
    macsec154:读取次要IEEE 802.15.4 MAC地址。
    macsecble:读取Secondary BLE MAC地址。
  {-w | --write} {macpri | macsec | macsec154 | macsecble | ccfg | addr | p}
    macpri = 01.02.03.04.05.06.07.08
                   主节目IEEE 802.15.4 MAC地址。
                   主要地址的写入仅支持CC2538
                   只有信息页面没有被锁定。
    macsec = 01.02.03.04.05.06.07.08
    macsec154 = 01.02.03.04.05.06.07.08
                  程序次要IEEE 802.15.4 MAC地址。
    macsecble = 01.02.03.04.05.06
                  程序二级BLE MAC地址。
    ccfg{wpp(%pages%)| ldbg | disbl}
          以下选项的组合是可能的,必须分开
          通过''
          wpp =pages%:编程具有页面锁定的CCFG区域
                        给定页面的位。
          ldbg:程序CCFG区域为bit
                        锁定调试接口
          disbl:程序CCFG区域与位
                        禁用引导加载程序接口
    ADDR0X%地址%,%长度%)= 0X%值%
          用给定的值填充闪存中的地址范围。
          该值必须以一个字节的十六进制数给出
    P(%页%)= 0X%值%
          用给定的值填充Flash中的页面范围。
          该值必须以一个字节的十六进制数给出
  {-k | --keep} {mac | macble | mac154macble | CCFG}
    mac:从Target设备保留(或保留)IEEE Mac地址。
    macble:从Target设备保留(或保留)Ble Mac地址。
    mac154macble:从目标设备保留(或保留)IEEBle Mac地址。
    ccfg:保持(或保留)从目标设备完成CCFG区域。
  {-c | --change} {mac | mac154 | macble | efk | ldbg | wpp | disbl}
    选项的组合是可能的,必须分开
    通过''
    mac = 01.02.03.04.05.06.07.08
    mac154 = 01.02.03.04.05.06.07.08
                   使用IEEE 802.15.4 MAC地址更改(补丁)闪存映像。
    macble = 01.02.03.04.05.06
                   使用BLE MAC地址更改(补丁)闪存映像。
    mac154 = 01.02.03.04.05.06.07.08 macble = 01.02.03.04.05.06
                   使用两个地址更改(补丁)闪存映像。
    ekf(%file%,%address%):
                   使用加密密钥数据更改(补丁)闪存映像。
                   具有加密密钥证书和闪存的文件
                   必须给出地址。
    WPP(%页数%):
                   更改(补丁)CCFG区域在闪存图像与页锁定
                   给定页面的位。
    ldbg
                   更改(补丁)闪存映像中的CCFG区域
                   锁定调试接口
    disbl
                   更改(补丁)闪存映像中的CCFG区域
                   禁用引导加载程序接口
  {-rs | --reset} [normal | | 调试| | pin | pinHib]
    引脚复位是默认值。
    有关详细信息,请参阅帮助文档
    描述不同的重置选项。
    复位动作必须与擦除或程序动作相结合。
  {-j4 | --jtag4}
    使用4jtag。适用于XDS100v3 / XDS200的选件,作为2引脚cJTAG
    这些模拟器的默认值。
  {-up | --updateEmulator}
    更新仿真器上的固件。选项适用于XDS110,不能
    结合其他行动。更新过程中请勿拔下调试探头。
-------------------------------------------------- -----------------------------
文件:{-f | --file}file
   file%:完全或相对路径。例如C\ myfolder \ test.bin
            带有空格的路径名必须用引号字符括起来。
            例如“C\ myfolder \ my test.bin
            或“C\ Program Files \ myfolder \ test.bin
-------------------------------------------------- -----------------------------
地址:{-a |  - 地址} [0x]%地址%
  %地址%:开始编程的Flash地址。
-------------------------------------------------- -----------------------------
例子:
> srfprog -ls
> srfprog -ls all
> srfprog -ls auto
> srfprog -t lsidx0-e all
> srfprog -t lsidx0-r macsec
> srfprog -t lsidx0-r all -f C\ myfolder \ readback.bin
> srfprog -t lsidx0-rp0-4-f C\ myfolder \ readback.bin
> srfprog -t lsidx0-r addr0x200000,8
> srfprog -t lsidx0-w macsec = 01.02.03.04.05.06.07.08
> srfprog -t lsidx0-e pif -p epfw0-f C\ myfolder \ test.bin -a 0x200000
> srfprog -t lsidx0-e pif -p epfw0-v rb -f C\ myfolder \ test.bin -a 0x200000
> srfprog -t lsidx0-e all -p -v rb epfw0x55-f C\ myfolder \ test.bin -a 0x200000
> srfprog -t lsidx0-e all -p -v rb ep0-1-f C\ myfolder \ test.bin -a 0x200000
> srfprog -t lsidx0-e pif -p epfw0-v crc -f C\ myfolder \ test.bin -a 0x200000 -k mac
> srfprog -t lsidx0-e pif -p epfw0-v crc -f C\ myfolder \ test.bin -a 0x200000 -c mac = 01.02.03.04.05.06.07.08
> srfprog -t lsidx0-e pif -p epfw0-v crc -f C\ myfolder \ test.hex -c ekfcertificate.txt0x27FF6C
> srfprog -t socXDS-06EB12100300ACC2538-e -p -v -fc\ test.hex
> srfprog -t socCOM1CC2640-e -p -v -fc\ test.hex

-------------------------------------------------- ---------------------

 

2.然后我们用bin下的srfprog.execmd下烧录是可以的

 

 

烧录过程:

 

 

 

3.我们可以单独将srfprog.exe和他的配置文件拷贝出来用python调用下一个烧录工具(dill文件我们可以将srfprog.exe考出后双击就会提醒我们缺哪些dill文件,然后我们拷贝出来即可)

 

python中调用cmd命令

 

 烧录工具:

 

你可能感兴趣的:(Bluetooth)