Author Topic: Running a blank microcontroller - what's actually executing?  (Read 6177 times)

0 Members and 1 Guest are viewing this topic.

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Running a blank microcontroller - what's actually executing?
« Reply #25 on: July 26, 2017, 08:02:07 pm »
Well, on my HDL-softcore (fpga), I have designed the register file to have a full initialization to zero on every hw-reset event. Thus, I am sure that all registers are actually zero  :D

 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: Running a blank microcontroller - what's actually executing?
« Reply #26 on: July 27, 2017, 08:56:34 pm »
Well, on my HDL-softcore (fpga), I have designed the register file to have a full initialization to zero on every hw-reset event. Thus, I am sure that all registers are actually zero  :D
I wonder if that kind of rigidity is necessary. Maybe you can design most the register file to be uninitialized.

AFAIK for AVR only the program counter (default to either zero or the beginning of the bootloader area, determined by a fuse) and the stack pointer (default to the end of RAM) have defined reset values. For ARM Cortex-M there is no initial value for all registers and the only guaranteed reset state is that the pipeline resets into the state as if loaded the instruction “ldm 0, {sp, pc}”
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Running a blank microcontroller - what's actually executing?
« Reply #27 on: July 27, 2017, 10:03:39 pm »
I wonder if that kind of rigidity is necessary

Good practice on HDL-design.
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: Running a blank microcontroller - what's actually executing?
« Reply #28 on: July 27, 2017, 11:54:23 pm »
I wonder if that kind of rigidity is necessary

Good practice on HDL-design.
I would consider those additional rigidity a lower priority component, which can be axed when yield is dipping or cost is getting a bit too high.
 

Offline eugenenine

  • Frequent Contributor
  • **
  • Posts: 865
  • Country: us
Re: Running a blank microcontroller - what's actually executing?
« Reply #29 on: July 28, 2017, 02:21:51 am »
We always said it was executing go jump in the lake instructions after having an early college professor who explained that microprocessors are stupid, if you tell them to go jump in the lake they will.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf