Why is the code compatible with motherboards?

I already built in motherboards using microcontrollers in the form of stm32, stm32l, nRF51822, efm32g, most of which used the m3 cerebral cortex. And for programming each of them usually differs, i.e. The interrupt line used in one microcontroller for gpio is not used in another, the registers for configuring one do not coincide with the other, so the code I made for one is not compatible with the other, because each microcontroller connects its peripheral devices differently with the processor .

I believe that the microcontroller equivalent in PC architecture is a motherboard? But how is the code made for the motherboard (using x86, for example) compatible with other motherboards? Is there a standard? Are all interrupt lines (hardware related) the same for all motherboards designed to run Windows or Linux? And are the I / O ports the same? Is the interface for changing the clock the same?

Usually, when I go to the software codec (without OS) for the microcontroller, I get its data to know how I can interact with peripheral devices, is there a single reference guide for all motherboards?

I would appreciate it if someone could point me to some links on this topic. When I look for books on computer architecture or they focus on the design of the ASIC processor (a set of instructions, pipelines, caches, etc., which I already know), or they are really basic (for example, what is a hard driver).

+4
source share
1 answer

, - , , . , ​​ . , , , "" .

​​, , . , ​​ .

, , - , , OS API.

+4

Source: https://habr.com/ru/post/1614079/


All Articles