SLAU131V October   2004  – February 2020

 

  1.   1
    1.     2
    2.     3
    3.     4
    4.     5
    5.     6
  2.   7
    1.     8
    2.     9
  3.   10
    1.     11
    2.     12
    3.     13
      1.      14
    4.     15
      1.      16
      2.      17
      3.      18
      4.      19
        1.       20
        2.       21
      5.      22
      6.      23
      7.      24
    5.     25
      1.      26
      2.      27
    6.     28
      1.      29
      2.      30
      3.      31
      4.      32
    7.     33
      1.      34
      2.      35
    8.     36
  4.   37
    1.     38
      1.      39
      2.      40
        1.       41
        2.       42
        3.       43
        4.       44
        5.       45
          1.        46
    2.     47
    3.     48
      1.      49
      2.      50
        1.       51
        2.       52
        3.       53
      3.      54
        1.       55
        2.       56
    4.     57
    5.     58
    6.     59
  5.   60
    1.     61
    2.     62
    3.     63
    4.     64
    5.     65
      1.      66
      2.      67
    6.     68
      1.      69
      2.      70
      3.      71
        1.       72
      4.      73
    7.     74
      1.      75
        1.       76
        2.       77
        3.       78
        4.       79
        5.       80
      2.      81
      3.      82
    8.     83
      1.      84
      2.      85
      3.      86
        1.       87
      4.      88
      5.      89
      6.      90
      7.      91
      8.      92
      9.      93
    9.     94
      1.      95
      2.      96
      3.      97
    10.     98
      1.      99
      2.      100
    11.     101
    12.     102
      1.      103
      2.      104
    13.     105
      1.      106
  6.   107
    1.     108
    2.     109
      1.      110
    3.     111
    4.     112
    5.     113
    6.     114
    7.     115
    8.     116
    9.     117
    10.     118
    11.     119
    12.     120
  7.   121
    1.     122
    2.     123
      1.      124
    3.     125
      1.      126
      2.      127
        1.       128
        2.       129
      3.      130
      4.      131
      5.      132
      6.      133
      7.      134
        1.       135
      8.      136
      9.      137
      10.      138
      11.      139
    4.     140
    5.     141
      1.      142
      2.      143
      3.      144
    6.     145
      1.      146
    7.     147
      1.      148
    8.     149
    9.     150
      1.      151
      2.      152
    10.     153
  8.   154
    1.     155
    2.     156
    3.     157
    4.     158
      1.      159
    5.     160
      1.      161
      2.      162
      3.      163
      4.      164
  9.   165
    1.     166
    2.     167
    3.     168
    4.     169
      1.      170
      2.      171
      3.      172
        1.       173
        2.       174
        3.       175
      4.      176
      5.      177
      6.      178
      7.      179
      8.      180
      9.      181
      10.      182
      11.      183
      12.      184
      13.      185
      14.      186
      15.      187
        1.       188
        2.       189
        3.       190
      16.      191
        1.       192
      17.      193
      18.      194
      19.      195
      20.      196
      21.      197
      22.      198
      23.      199
      24.      200
      25.      201
      26.      202
      27.      203
      28.      204
      29.      205
      30.      206
      31.      207
      32.      208
      33.      209
      34.      210
      35.      211
    5.     212
      1.      213
      2.      214
      3.      215
      4.      216
      5.      217
      6.      218
        1.       219
        2.       220
          1.        221
        3.       222
          1.        223
      7.      224
        1.       225
          1.        226
        2.       227
          1.        228
          2.        229
          3.        230
          4.        231
            1.         232
            2.         233
          5.        234
          6.        235
        3.       236
          1.        237
        4.       238
        5.       239
          1.        240
        6.       241
        7.       242
      8.      243
        1.       244
        2.       245
          1.        246
          2.        247
      9.      248
        1.       249
          1.        250
        2.       251
          1.        252
          2.        253
        3.       254
        4.       255
          1.        256
        5.       257
        6.       258
      10.      259
      11.      260
        1.       261
        2.       262
        3.       263
      12.      264
        1.       265
        2.       266
        3.       267
        4.       268
        5.       269
        6.       270
        7.       271
          1.        272
          2.        273
          3.        274
          4.        275
        8.       276
      13.      277
        1.       278
        2.       279
        3.       280
        4.       281
    6.     282
      1.      283
      2.      284
      3.      285
    7.     286
      1.      287
      2.      288
      3.      289
    8.     290
      1.      291
      2.      292
      3.      293
        1.       294
      4.      295
        1.       296
        2.       297
        3.       298
        4.       299
          1.        300
        5.       301
          1.        302
        6.       303
          1.        304
          2.        305
      5.      306
        1.       307
        2.       308
        3.       309
        4.       310
        5.       311
      6.      312
        1.       313
      7.      314
        1.       315
    9.     316
      1.      317
      2.      318
      3.      319
        1.       320
        2.       321
        3.       322
        4.       323
      4.      324
        1.       325
      5.      326
    10.     327
    11.     328
      1.      329
      2.      330
      3.      331
      4.      332
      5.      333
    12.     334
      1.      335
      2.      336
  10.   337
    1.     338
    2.     339
    3.     340
      1.      341
      2.      342
  11.   343
    1.     344
    2.     345
    3.     346
      1.      347
  12.   348
    1.     349
    2.     350
    3.     351
    4.     352
  13.   353
    1.     354
    2.     355
      1.      356
      2.      357
    3.     358
      1.      359
      2.      360
      3.      361
      4.      362
    4.     363
      1.      364
      2.      365
        1.       366
        2.       367
    5.     368
    6.     369
      1.      370
      2.      371
    7.     372
    8.     373
    9.     374
      1.      375
      2.      376
      3.      377
    10.     378
    11.     379
    12.     380
    13.     381
      1.      382
      2.      383
      3.      384
      4.      385
      5.      386
      6.      387
        1.       388
  14.   389
    1.     390
    2.     391
      1.      392
      2.      393
      3.      394
      4.      395
      5.      396
      6.      397
      7.      398
      8.      399
      9.      400
      10.      401
      11.      402
      12.      403
      13.      404
      14.      405
      15.      406
      16.      407
    3.     408
      1.      409
      2.      410
      3.      411
      4.      412
    4.     413
      1.      414
      2.      415
      3.      416
      4.      417
      5.      418
      6.      419
      7.      420
  15.   421
    1.     422
    2.     423
  16.   424
    1.     425
    2.     426
      1.      427
        1.       428
      2.      429
        1.       430
      3.      431
        1.       432
      4.      433
        1.       434
      5.      435
        1.       436
      6.      437
        1.       438
      7.      439
        1.       440
  17.   441
    1.     442
      1.      443
    2.     444
      1.      445
      2.      446
      3.      447
      4.      448
      5.      449
      6.      450
  18.   451
    1.     452
  19.   453
    1.     454

Example 24. Run-Time-Support cpy_tbl.c File

/* cpy_tbl.c v##### */ /* */ /* General purpose copy routine. Given the address of a linker-generated */ /* COPY_TABLE data structure, copy all object components designated for copy */ /* via the corresponding LCF table() operator. */ /*****************************************************************************/ #include <cpy_tbl.h> #include <string.h> #ifdef __TI_EABI__ /*************************************************************************/ /* MSP copy tables can handle moving functions even in small data model */ /* + large code model, where data pointers are not big enough to */ /* represent function pointers. This requires the EABI decompression */ /* functions (SHARED/copy_*.c) to be changed to accept "far" pointers. */ /* For this memory model combination, the decompression functions are */ /* changed to use "unsigned long" to represent function pointers, so */ /* function pointers through which we call these functions also needs to */ /* have a prototype accepting "unsigned long" instead of pointer types. */ /* All other memory model combinations use the same prototype that all */ /* the other targets use: two data pointer arguments. Ultimately we use */ /* MSP peek/poke intrinsics to read/write the "far" memory. */ /*************************************************************************/ #if __LARGE_CODE_MODEL__ && !__LARGE_DATA_MODEL__ typedef void (*handler_fptr)(unsigned long in, unsigned long out); #else typedef void (*handler_fptr)(const unsigned char *in, unsigned char *out); #endif #define HANDLER_TABLE __TI_Handler_Table_Base #pragma WEAK(HANDLER_TABLE) extern unsigned int HANDLER_TABLE; #endif #if __LARGE_CODE_MODEL__ && !__LARGE_DATA_MODEL__ void __memcpy_far(unsigned long dst, unsigned long src, unsigned long sz); #endif void copy_in(COPY_TABLE *tp) { unsigned short i; for (i = 0; i < tp->num_recs; i++) { COPY_RECORD crp = tp->recs[i]; #if __LARGE_CODE_MODEL__ & __LARGE_DATA_MODEL__ unsigned long ld_addr = crp.load_addr; unsigned long rn_addr = crp.run_addr; #else unsigned char *ld_addr = crp.load_addr; unsigned char *rn_addr = crp.run_addr; #endif if (crp.size) { /*------------------------------------------------------------------*/ /* Copy record has non-zero size so data is not compressed. */ /*------------------------------------------------------------------*/ #if __LARGE_CODE_MODEL__ && !__LARGE_DATA_MODEL__ if (ld_addr >> 16 || rn_addr >> 16) __memcpy_far(rn_addr, ld_addr, crp.size); else memcpy((void*)(unsigned int)rn_addr, (void*)(unsigned int)ld_addr, crp.size); #else memcpy(rn_addr, ld_addr, crp.size); #endif } #ifdef __TI_EABI__ else if (HANDLER_TABLE) { /*------------------------------------------------------------------*/ /* Copy record has size zero so the data is compressed. The first */ /* byte of the load data has the handler index. Use this index with */ /* the handler table to get the handler for this data. Then call */ /* the handler by passing the load and run address. */ /*------------------------------------------------------------------*/ #if __LARGE_CODE_MODEL__ && !__LARGE_DATA_MODEL__ unsigned char index = __data20_read_char(ld_addr++); #else unsigned char index = *((unsigned char *)ld_addr++); #endif handler_fptr hndl = (handler_fptr)(&HANDLER_TABLE)[index]; #if __LARGE_CODE_MODEL__ && !__LARGE_DATA_MODEL__ (*hndl)(ld_addr, rn_addr); #else (*hndl)((const unsigned char *)ld_addr, (unsigned char *)rn_addr); #endif } #endif } }