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

Alignment With Padding

As with align, you can tell the linker to place an output section at an address that falls on an n-byte boundary, where n is a power of 2, by using the palign keyword. In addition, palign ensures that the size of the section is a multiple of its placement alignment restrictions, padding the section size up to such a boundary, as needed.

For example, the following code lines allocate .text on a 2-byte boundary within the PMEM area. The .text section size is guaranteed to be a multiple of 2 bytes. Both statements are equivalent:

.text: palign(2) {} > PMEM .text: palign = 2 {} > PMEM

If the linker adds padding to an initialized output section then the padding space is also initialized. By default, padding space is filled with a value of 0 (zero). However, if a fill value is specified for the output section then any padding for the section is also filled with that fill value. For example, consider the following section specification:

.mytext: palign(8), fill = 0xffff {} > PMEM

In this example, the length of the .mytext section is 6 bytes before the palign operator is applied. The contents of .mytext are as follows:

addr content ---- ------- 0000 0x1234 0002 0x1234 0004 0x1234

After the palign operator is applied, the length of .mytext is 8 bytes, and its contents are as follows:

addr content ---- ------- 0000 0x1234 0002 0x1234 0004 0x1234 0006 0xffff

The size of .mytext has been bumped to a multiple of 8 bytes and the padding created by the linker has been filled with 0xff.

The fill value specified in the linker command file is interpreted as a 16-bit constant. If you specify this code:

.mytext: palign(8), fill = 0xff {} > PMEM

The fill value assumed by the linker is 0x00ff, and .mytext will then have the following contents:

addr content ---- ------- 0000 0x1234 0002 0x1234 0004 0x1234 0006 0x00ff

If the palign operator is applied to an uninitialized section, then the size of the section is bumped to the appropriate boundary, as needed, but any padding created is not initialized.

The palign operator can also take a parameter of power2. This parameter tells the linker to add padding to increase the section's size to the next power of two boundary. In addition, the section is aligned on that power of 2 as well. For example, consider the following section specification:

.mytext: palign(power2) {} > PMEM

Assume that the size of the .mytext section is 120 bytes and PMEM starts at address 0x10020. After applying the palign(power2) operator, the .mytext output section will have the following properties:

name addr size align ------- ---------- ----- ----- .mytext 0x00010080 0x80 128