Цитата(zuy @ Dec 2 2009, 14:46)

У меня до main не доходит, по-этому смотрю по шагам в окне дизассемблера.
После инициализации стеков, идет переход на инициализацию стандартной бибилиотеки.
Среди них заходим в процедуру __rt_lib_init_stdio_2:
Внутри нее процедура _initio, там доходим до freopen, а внутри уже стоит _sys_open который и вызывает SWI.
Получается эти вызовы используются при инициализации стандартной библиотеки. Но что из моего модуля заставляет их использовать? Как это можно отловить?
Он пытается открыть STDIN/STDOUT/STDERR, только почему она у вас SWI вызывает я чего-то не пойму.
Можно реализовать функции:
Код
#pragma import(__use_no_semihosting_swi)
int _sys_open(const char *name,int mode);
int _sys_close(FILEHANDLE fh);
int _sys_write(FILEHANDLE fh, const unsigned char * buf,unsigned len, int mode);
int _sys_read(FILEHANDLE fh, unsigned char * buf,unsigned len, int mode);
Сделайте их пустыми, возвращающими 0 должно начать доходить до main.