- 藍牙4.0 BLE學習時,使用的是TI的CC2540芯片,首先安裝IAR 8.10.4,BLE協議棧版本為1.3.2。編譯開發板的基礎實驗工程代碼沒有什么問題,點擊"download and debug"按鈕
嘗試將代碼下載到CC2540板子調試時出現“ a target cannot be selected when used in another debug session or other application”提示框,下載失敗,無法進行調試,如下圖1所示:
圖1
- 安裝TI的工具PacketSniffer,插入USB dongle,打開PacketSniffer軟件后無法識別dongle,如圖2所示:
圖2
- 安裝TI的工具SmartRF Flash Programmer,插入CC debugger,打開SmartRF Flash Programmer軟件后無法識別CC debugger,如圖3所示:
圖3
- 打開電腦的設備管理器,電腦看上去識別了CC debugger和USB dongle,結合上面的現象,實際上沒有成功安裝,因為驅動旁邊有感嘆號。右擊查看屬性可以看到“Windows 無法驗證此設備所需的驅動程序的數字簽名。最近的硬件或軟件更改安裝的文件可能未正確簽名或已損壞,或者可能是來自未知來源的惡意軟件。 (代碼 52)”的提示,如圖4所示:
圖4
- 根據提示“Windows 無法驗證此設備所需的驅動程序的數字簽名。最近的硬件或軟件更改安裝的文件可能未正確簽名或已損壞,或者可能是來自未知來源的惡意軟件。 (代碼 52)”,結合自己電腦是win7 64位旗艦版,查找解決辦法如下:
原因是64 位系統強制要求所有設備驅動程序要有數字簽名,因此只能通過啟動系統時 F8 進入高級選項,選擇禁用數字簽名,進入系統后驅動顯示正常了,可以用啦。
但是隨后又出現一個問題,開機后重啟,又恢復原樣,再次查找解決辦法,如下:
禁止Win7驅動強制簽名
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECK
或者
bcdedit /set testsigning on
恢復WIN7驅動強制簽名
bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
或者
bcdedit /set testsigning off
重啟后生效, 第二種桌面右下角有水印: "測試模式"
使用管理員的身份打開CMD命令行,然后輸入上面的命令,完成之后重新啟動計算機,就可以隨時在64位win7系統上使用未有數字簽名的驅動程序了。當然,此操作也降低了系統的安全系數,所以不推薦一直關閉,而且也不推薦也沒有經驗的用戶使用,養成良好的安全意識是安全的第一步。
自己的電腦是win7 64旗艦版,試了下,兩種方法仍然不行,繼續找,終於找到最終的解決辦法,如下:
解決方法的網址:http://nick.txtcc.com/index.php/nocategory/290
摘錄如下:
這個問題,一直都很找不到很好的解決方法。不過Windows 7還是有個空子可鑽:它提供了一個開發者測試模式,為了讓軟件開發者能在拿到簽名前測試自己的軟件,它提供了一個測試模式。使用這個模式,就可完美解除驅 動程序強制簽名限制。
Driver Signature Enforcement Overrider這款軟件可方便地把Windows 7轉換到這個測試模式下
成功開啟測試模式后,再選擇Sign a System File手動注冊被Windows 7阻止的驅動程序文件(.sys文件,之前安裝時Windows 7會有相應的阻攔提示,根據提示中的路徑找到它)
但是,開啟了測試模式后,在桌面右下角會有數字水 印,提示系統正工作在測試模式下,影響美觀。
可使用一款軟件來去除水印:Remove WaterMark,之后就完美了。
下載本文中涉及的軟件:
Driver Signature Enforcement Overrider | Remove WaterMark