Quantcast
Viewing all articles
Browse latest Browse all 116964

Forum Post: URGENT!! OAD-only Image issue.

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
  + common

689
134

 

 

 

 

 

 

?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
  + common

18
3

 

 

 

 

 

 

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
  + shared

1 135

 

 

6

 

 


4

OnBoard

404

 

 

2

 

 

 

SimpleBLEPeripheral_Main
  + shared

80

 

1
1

 

 

 

 

VIRTUAL_REGISTERS

 

2

 

 

 

8

 

att_server

495

 

 

 

 

 

 

att_util

2 788

 

 

 

 

 

16

devinfoservice

1 069

 

 

176

 

 

125

gap

89

 

 

 

 

 

 

gap_configmgr
  + shared

1 333

 

 

100

 

 


8

gap_devmgr

226

 

 

2

 

 

 

gap_linkmgr
  + shared

1 539

 

 

7

 

 


8

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
  + shared

189

 

4
1

1

 

 

 

hal_aes
  + shared

85

 


3

 

 

 

 

hal_crc
  + shared

46

 


2

 

 

 

 

hal_dma

23

 

4

40

 

 

 

hal_drivers

170

 

 

1

 

 

4

hal_flash
  + shared

276

 


1

 

 

 

 

hal_key
  + shared
  + common

480
110

 

5
11

5

 

 


4

hal_lcd
  + shared

936

 

6
3

2

 

 

18

hal_led

22

 

 

1

 

 

 

hal_sleep
  + shared
  + common

29
46

 

2
3

 

 

 


4

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
  + shared

3 559

 

3
2

456

2

 


12

ll_advEndCauses

2 330

 

 

 

 

 

 

ll_common
  + shared

5 691

 

10

 

 

 

16
12

ll_constData

8

 

 

 

 

 

 

ll_enc

2 617

 

1

44

 

 

32

ll_errorEndCauses

9

 

 

 

 

 

 

ll_halt

7

2

 

 

 

 

 

ll_isr
  + shared
  + common

599
134

 


10

 

 

 


8

ll_math

81

6

 

 

 

 

 

ll_scheduler

3 446

 

 

447

 

 

24

ll_slaveEndCauses

4 714

 

 

 

 

 

4

ll_sleep
  + shared

4

 

 

 

 

 


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
  + shared

2 930

 

 

150

 

 


4

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:
  + common

79 738
134

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.


Viewing all articles
Browse latest Browse all 116964

Trending Articles