Dear All:
I am trying the CC2540F256 OAD function now.
I have modified the SimpleBLEPeripheral project to minimize the Image-A and maximum Image-B and plane to implement the OAD-only Image-A.
I follow the instruction from CC254x OAD Guide 12. Maximize the Image-B area (while minimizing the Image-A area), and now I have 39 pages flash for Image-A and 85 pages flash for Image-B.
It sounds good now but I encountered some problems and can not move forward.
1. How many flash size the OAD-only Image-A real needs?
I only can minimize the Image-A to about 80KB now, the following is from .map file.
It seems there are some code is from BLE library but I don't need it, for example sm_mgr (code size:2377 bytes).
How can I delete it ?
How many flash size the OAD-only Image-A real needs ?
Module Summary
Module | CODE | DATA | XDATA | IDATA | BIT | CONST | |
| (Rel) | (Rel) | (Abs) | (Rel) | (Rel) | (Rel) | (Rel) |
?ADD_XSTACK_DISP8 | 27 |
|
|
|
|
|
|
?ALLOC_XSTACK8 | 22 |
|
|
|
|
|
|
?BANKED_CODE_SUPPORT | 74 |
|
|
|
|
|
|
?BANKED_ENTER_XDATA | 108 |
|
|
|
|
|
|
?BANKED_LEAVE_XDATA | 70 |
|
|
|
|
|
|
?CALL_IND | 2 |
|
|
|
|
|
|
?CHECKSUM | 2 |
|
|
|
|
|
|
?DEALLOC_XSTACK8 | 26 |
|
|
|
|
|
|
?FILLER_BYTES | 689 |
|
|
|
|
|
|
?FUNC_ENTER_XDATA | 102 |
|
|
|
|
|
|
?FUNC_LEAVE_XDATA | 64 |
|
|
|
|
|
|
?INTERRUPT_ENTER_XSP | 95 |
|
|
|
|
|
|
?INTERRUPT_LEAVE_XSP | 88 |
|
|
|
|
|
|
?L_ADD | 19 |
|
|
|
|
|
|
?L_ADD_TO_X | 19 |
|
|
|
|
|
|
?L_ADD_X | 19 |
|
|
|
|
|
|
?L_AND_TO_X | 19 |
|
|
|
|
|
|
?L_AND_X | 19 |
|
|
|
|
|
|
?L_EQ_X | 21 |
|
|
|
|
|
|
?L_MOV_TO_X | 15 |
|
|
|
|
|
|
?L_MOV_X | 15 |
|
|
|
|
|
|
?L_MUL | 128 |
|
|
|
|
|
|
?L_SHL | 31 |
|
|
|
|
|
|
?L_SUB | 20 |
|
|
|
|
|
|
?L_SUB_FROM_X | 20 |
|
|
|
|
|
|
?MOVE_LONG8_XDATA_IDATA | 13 |
|
|
|
|
|
|
?MOVE_LONG8_XDATA_XDATA | 33 |
|
|
|
|
|
|
?PUSH_XSTACK8_X | 49 |
|
|
|
|
|
|
?PUSH_XSTACK_I | 23 |
|
|
|
|
|
|
?SS_SHR | 16 |
|
|
|
|
|
|
?S_DIV_MOD | 154 |
|
|
|
|
|
|
?S_SHL | 19 |
|
|
|
|
|
|
?UL_DIV_MOD | 112 |
|
|
|
|
|
|
?UL_GE_X | 31 |
|
|
|
|
|
|
?UL_GT | 16 |
|
|
|
|
|
|
?UL_GT_X | 16 |
|
|
|
|
|
|
?UL_SHR | 25 |
|
|
|
|
|
|
?US_JMP_IF_IN_RANGE | 63 |
|
|
|
|
|
|
?US_JMP_IF_VALUE | 43 |
|
|
|
|
|
|
?US_SHR | 15 |
|
|
|
|
|
|
?US_SWITCH_DENSE | 70 |
|
|
|
|
|
|
?US_SWITCH_SPARSE | 76 |
|
|
|
|
|
|
?XLOAD_R2345 | 12 |
|
|
|
|
|
|
?XSTACK_DISP8 | 10 |
|
|
|
|
|
|
?XSTORE_R2345 | 12 |
|
|
|
|
|
|
?cexit | 5 |
|
|
|
|
|
|
?cmain | 116 |
|
|
|
|
|
|
?memset | 51 |
|
|
|
|
|
|
?strcat | 60 |
|
|
|
|
|
|
?strcpy | 46 |
|
|
|
|
|
|
?strlen | 36 |
|
|
|
|
|
|
CSTARTUP | 18 |
|
|
|
|
|
|
OSAL | 2 221 |
|
| 3 |
|
| 40 |
OSAL_ClockBLE | 253 |
|
| 10 |
|
|
|
OSAL_Memory | 521 |
|
| 3 075 |
|
|
|
OSAL_PwrMgr | 108 |
|
| 7 |
|
|
|
OSAL_SimpleBLEPeripheral | 112 |
|
| 2 |
|
| 21 |
OSAL_Timers | 1 135 |
|
| 6 |
|
|
|
OnBoard | 404 |
|
| 2 |
|
|
|
SimpleBLEPeripheral_Main | 80 |
| 1 |
|
|
|
|
VIRTUAL_REGISTERS |
| 2 |
|
|
| 8 |
|
att_server | 495 |
|
|
|
|
|
|
att_util | 2 788 |
|
|
|
|
| 16 |
devinfoservice | 1 069 |
|
| 176 |
|
| 125 |
gap | 89 |
|
|
|
|
|
|
gap_configmgr | 1 333 |
|
| 100 |
|
|
|
gap_devmgr | 226 |
|
| 2 |
|
|
|
gap_linkmgr | 1 539 |
|
| 7 |
|
|
|
gap_peridevmgr | 1 893 |
|
| 13 |
|
| 4 |
gap_task | 1 020 |
|
| 6 |
|
|
|
gatt_server | 3 730 |
|
| 13 |
|
| 48 |
gatt_task | 559 |
|
| 5 |
|
|
|
gatt_uuid | 10 |
|
|
|
|
| 10 |
gattservapp | 6 159 |
|
| 63 |
|
|
|
hal_adc | 189 |
| 4 | 1 |
|
|
|
hal_aes | 85 |
|
|
|
|
|
|
hal_crc | 46 |
|
|
|
|
|
|
hal_dma | 23 |
| 4 | 40 |
|
|
|
hal_drivers | 170 |
|
| 1 |
|
| 4 |
hal_flash | 276 |
|
|
|
|
|
|
hal_key | 480 |
| 5 | 5 |
|
|
|
hal_lcd | 936 |
| 6 | 2 |
|
| 18 |
hal_led | 22 |
|
| 1 |
|
|
|
hal_sleep | 29 |
| 2 |
|
|
|
|
hal_startup | 11 |
|
|
|
|
|
|
hci | 1 380 |
|
| 5 |
|
|
|
hci_data | 1 049 |
|
| 34 |
|
|
|
hci_event | 3 298 |
|
| 9 |
|
|
|
hci_tl | 139 |
|
| 6 |
|
|
|
l2cap_if | 301 |
|
|
|
|
|
|
l2cap_task | 1 145 |
|
| 37 |
|
|
|
l2cap_util | 2 272 |
|
| 1 |
|
|
|
linkdb | 784 |
|
| 59 |
|
|
|
ll | 3 559 |
| 3 | 456 | 2 |
|
|
ll_advEndCauses | 2 330 |
|
|
|
|
|
|
ll_common | 5 691 |
| 10 |
|
|
| 16 |
ll_constData | 8 |
|
|
|
|
|
|
ll_enc | 2 617 |
| 1 | 44 |
|
| 32 |
ll_errorEndCauses | 9 |
|
|
|
|
|
|
ll_halt | 7 | 2 |
|
|
|
|
|
ll_isr | 599 |
|
|
|
|
|
|
ll_math | 81 | 6 |
|
|
|
|
|
ll_scheduler | 3 446 |
|
| 447 |
|
| 24 |
ll_slaveEndCauses | 4 714 |
|
|
|
|
| 4 |
ll_sleep | 4 |
|
|
|
|
|
|
ll_timer2 | 1 269 |
| 8 |
|
|
|
|
ll_timerDrift | 304 |
|
|
|
|
| 26 |
oad_target | 1 955 |
| 1 | 91 |
|
| 80 |
osal_bufmgr | 432 |
|
| 2 |
|
|
|
osal_cbtimer | 609 |
|
| 62 |
|
|
|
peripheral | 2 930 |
|
| 150 |
|
|
|
phy | 1 030 |
|
| 1 |
|
|
|
phy_image | 3 564 |
|
|
|
|
| 3 564 |
simpleBLEPeripheral | 970 |
|
| 58 |
|
| 92 |
sm_mgr | 2 377 |
|
|
|
|
| 16 |
N/A (command line) |
| 24 |
| 640 | 192 |
|
|
N/A (alignment) |
|
|
|
|
|
|
|
Total: | 79 738 | 34 | 82 | 5 642 | 194 | 8 | 4 208 |
79 186 | bytes | of | CODE | memory | (+ |
|
| 686 | range fill | ) |
34 | bytes | of | DATA | memory | (+ | 82 | absolute | ) |
|
|
5 642 | bytes | of | XDATA | memory |
|
|
|
|
|
|
194 | bytes | of | IDATA | memory |
|
|
|
|
|
|
8 | bits | of | BIT | memory |
|
|
|
|
|
|
4 208 | bytes | of | CONST | memory |
|
|
|
|
|
|
2. How to test the OAD function ?
After surf the TI website, I found there are three methods.
But they don't work now!!
a). OADManager
The flash size of this project is about 100Kbyte, but I have 170Kbyte (85 flash pages) Image-B now.
So I can't put the Image-B inside the OADManager device flash.
PS. I see from CC254x OAD Guide 7. Design Constraints
7.1 External Constraints / Features, I must put the Image-B at external NV memory.
Will TI release this firmware or I must implement it by myself ?
103 397 | bytes | of | CODE | memory | (+ |
|
| 23 555 | range fill | ) |
28 | bytes | of | DATA | memory | (+ | 88 | absolute | ) |
|
|
7 728 | bytes | of | XDATA | memory |
|
|
|
|
|
|
194 | bytes | of | IDATA | memory |
|
|
|
|
|
|
8 | bits | of | BIT | memory |
|
|
|
|
|
|
4 343 | bytes | of | CONST | memory |
|
|
|
|
|
|
b.) Multitool or SensorTag App
I load the new .bin file by using iTunes as the following picture.
Image may be NSFW.
Clik here to view.
When I use those App to update FW image, I select "Shared files", the App can't work normally as the following picture.
Image may be NSFW.
Clik here to view.
Do I loss any step ? Any suggestion is welcome!!
Besides, do those two App support Image which is more than 124Kbyte (62 pages flash) ?
c.) BLE Device Monitor
It works fine when I try the 124Kbyte (62 pages flash) Image-A and Image-B.
When I change to 39 pages flash for Image-A and 85 pages flash for Image-B and update Image-B first time, it works initially but can't complete the update. It stops in the middle.
When I restart the update process, try to Connect the peripheral. the Device Monitor popup the following error message.
I reinstall the BLE Device Monitor, try the 124Kbyte (62 pages flash) Image-A and Image-B. It always popup the same error message and can't connect to any peripheral anymore. It is really strange.
How do I fixed it ? thanks.
Image may be NSFW.
Clik here to view.
Sorry for the long post.
BR.
Peter.