2 ms·
I found that doing endian conversion for a system using both PCI and VME buses was quite a challenge. I also found it a challenge writing Linux device drivers
by mrlyc 10y ago
I found that doing endian conversion for a system using both PCI and VME buses was quite a challenge.
I also found it a challenge writing Linux device drivers for chips with an external 32 bit bus and an internal 16 bit one. The 32 bit data had to be split into two, set the data pins for the first half, set a bit saying the data was available, wait for it to be read in and repeat with the second half. Do the reverse for reading.
Also challenging was setting the bits in a register for a chip with multiple commands per register. My program checked the input data for an error, e.g. trying to set three bits to 128, read the register, masked out the bits to be changed, changed them, wrote the value, read the register, masked out the bits and checked them to make sure they had been changed.
Then there was the time the board manufacturer changed the memory map of the board without telling us. Boards made before April would boot, newer ones didn't.
I also found that some device drivers from SOC chip manufacturers had to be debugged before I could use them.
- raverbashing 10y agoDon't you mean "Internal 32 bit bus/external 16 bit"?