CP15 = CoProcessor 15.
Using the address of a function works fine, very simple if the function doesn't take any parameters.
Thats pretty much how i did it in my threading lib.
If the function does take parameters, you would have to find out how the calling convention works.
And, btw, iirc...