Soft Reset
asm("reset");
Reset Function
Generally the C30 will use the startup module to do some setup works. Refer to the device linker script file (p24HJ256GP206.gld), there are something like:
OUTPUT_ARCH("24HJ256GP206")
CRT0_STARTUP(crt0_standard.o)
CRT1_STARTUP(crt1_standard.o)
OPTIONAL(-lp24HJ256GP206)
The CRTn_STARTUP commands specify two C run-time startup modules to be loaded from archives. The linker will select one of these based on whether data initialization has been enabled. Check the corresponding startup source files (for example crt0_standard.s and crt1_standard.s) for details.
In those files, "__reset" is not declared as global but as weak attribute. The "__resetPRI" and "__resetALT" are declared as global respectively. So you may use one of these symbols depending on your project build option settings. Anyway, check the generated disassembly listing file or program memory window to ensure to get your expected results.