0

(I am new to ARM microcontrollers. Pardon me if this is a naïve question. )

ARM-M3 processor provides a unique bit-banding feature which maps a bit in the first 1M address range of SRAM and peripheral regions to a 32-bit word in another alias address ranges, respectively.

My questions are:

  • Why only map the first 1M? What's so special about this first 1M range?

  • The mapped 32M alias ranges are still in the SRAM/Peripheral range, so they cannot be used for other purpose, right?

  • If I want to set a bit in the bit-banding region, should I write 0xFFFFFFFF, 0x000000FF or just 0x1 to the mapped alias word? It seems all of them can work but I am not sure which one is safe/correct.

artless noise
  • 21,212
  • 6
  • 68
  • 105
smwikipedia
  • 61,609
  • 92
  • 309
  • 482
  • 1
    The first 1MB, because arm chose to, you can ask them – old_timer Oct 05 '20 at 01:12
  • 1
    Bit [0] of the value written to a word in the alias region determines the value written to the targeted bit in the bit-band region. Writing a value with bit [0] set writes a 1 to the bit-band bit, and writing a value with bit [0] cleared writes a 0 to the bit-band bit. Bits [31:1] of the alias word have no effect on the bit-band bit. Writing 0x01 has the same effect as writing 0xFF . Writing 0x00 has the same effect as writing 0x0E . – old_timer Oct 05 '20 at 01:12
  • seems pretty clear did you read the arm docs? – old_timer Oct 05 '20 at 01:12
  • I am just reading the "Designer's Guide to the Cortex-M Processor Family". I will read the specs later. Thanks for the comment. – smwikipedia Oct 05 '20 at 02:55

0 Answers0