I'm trying to be sure I understand some basics about programming for different ARM architectures (e.g. ARMv5 vs ARMv7). 
I have a python program that was ported to the newer Raspberry Pi B(Cotrex-7A). What would it take to also have it run on an ARMv6 or ARMv5 architecture. The program does simple waveform processing and serial communication with no need for a GPU.
My understanding is that I would have to recompile the program for each of the architectures to account for the different instruction sets. And I would also need to run the same version of Linux (in this case Wheezy), but is there more I have to consider here?  
Is there the possibility that if it compiles in an ARMv7 it won't on an ARMv6 or ARMv5
Thanks
The nice thing about python is that you rarely need to worry about the
underlying architecture.  Python is interpreted, so the interpreter does
all the hard work of handling 32 bit, 64 bit, little-endian, big-endian,
soft or hard floating point etc.  
Also, you don't need to compile your python, as the interpreter will
also compile your source if your provide both the .py and the .pyc or .pyo file
and the latter does not match what is needed. Compiling python is
not the same as compiling C, for example, as python targets a virtual
machine, not real hardware.  The resulting .pyc or .pyo files are
however tied to the particular version of python. 
Generally, source files are usually provided, and if there is no .pyc or .pyo for them,
then the first time python is run it will create them (if it has
file permissions). A second run will then use the compiled versions,
if the source has not changed.
Programming on different ARM architectures