it is OK to call SystemInit() in startup and you can debug it too. check your debugger settings for ''Reset To Main'' option.
when you load your program in debug mode, try running from the same point the pointer is pointing at. do not reset the code before you debug. because when u reset the code the debugger goes to main() ignoring any break point in SystemInit().