雖然W806和W800/W801的內部結構幾乎相同(雖說W806和W800/W800少了wifi和藍牙,但經網友實際的測試,W806還是有配備有wifi和藍牙核),而唯一稱得上差別的就是W806 Flash 為1M而W800/W801為2M;因此,W800/W800 SDK編譯的程序,需要做簡單的修改,方能在W806上運行;
按大佬指導,按文檔http://ask.winnermicro.com/question/131.html的說明修改 還是有問題,經過琢磨測試,終於更改成功,記錄如下:
修改方法如下
1.修改ld/w800/gcc_csky.ld
I-SRAM :ORIGIN = 0x080D040D改為0x08010400, 長度LENGTH相應改為0xE0000
不再保留OTA分區,否則,W800編譯後的固件需要的空間可能不夠 ,更改後,固件占用空間為 0x08010400~0xF0400
此更改是和上文最大的區別;
2.CDK編譯,修改./tools/w800/utilities/aft build project.sh
run_img header=8010000
run img_pos=8010400
3.修改./include/driver/wm flash_map.h
CODE RUN START ADDR改為0x8010000UL,測試此處沒有修改也可以正常運行,這幾個常數應該是OTA使用,但我們已經取消了OTA功能
4.修改./platform/drivers/internalflash/wm internal fls.c
TLS FLASH * 等6個宏定義,0x81F全部改為0x80F
thanks.
are you able to provide a link to where this was discovered?
"actual testing by netizens shows that W806 is still equipped with Wi-Fi and Bluetooth cores"
and what does it mean if the flasher is erroring with fail! Error code: "NAK" after trying to flash a binary compiled using a modified W800 SDK onto a W806?