Какой используете аппаратный отладчик (Wiggler,
MT-LINK)? Когда задаете вопросы, побольше давайте исходной информации - тогда народу будет легче отвечать.
1. По этому вопросу не могу ответить, не сталкивался.
2. Насчет ошибок стека, которые вываливаются при отладке, не заморачивайтесь. Наверное, это особая "фича" IAR

. Больше года с этим живу, полет нормальный. Вот например, что выводит мой IAR 5.20 при пошаговой отладке с помощью JTAG MT-LINK (он же J-Link):
Fri Dec 25 09:59:08 2009: Loaded macro file: C:\asm\pkrc-m\ewp\..\at91lib\resources\flash.mac
Fri Dec 25 09:59:09 2009: DLL version: V3.96|, compiled Oct 31 2008 19:06:25
Fri Dec 25 09:59:09 2009: Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5
Fri Dec 25 09:59:09 2009: JTAG speed is using adaptive clocking (RTCK signal)
Fri Dec 25 09:59:09 2009: Initial reset was performed
Fri Dec 25 09:59:09 2009: TotalIRLen = 4, IRPrint = 0x01
Fri Dec 25 09:59:09 2009: J-Link found 1 JTAG device(s). ARM core Id: 3F0F0F0F ARM7
Fri Dec 25 09:59:09 2009: Device at TAP0 selected
Fri Dec 25 09:59:09 2009: JLINK command: ProjectFile = C:\asm\pkrc-m\ewp\settings\pkrc-m_at91sam7x256_flash.jlink, return = 0
Fri Dec 25 09:59:09 2009: JLINK command: device = AT91SAM7X256, return = 0
Fri Dec 25 09:59:09 2009: TotalIRLen = 4, IRPrint = 0x01
Fri Dec 25 09:59:11 2009: 240893 bytes downloaded (120.45 Kbytes/sec)
Fri Dec 25 09:59:11 2009: Loaded debugee: C:\asm\pkrc-m\ewp\at91sam7x256_flash\Exe\at91sam7x256_flash.out
Fri Dec 25 09:59:12 2009: Target reset
Fri Dec 25 09:59:12 2009: execUserReset()
Fri Dec 25 09:59:12 2009: TotalIRLen = 4, IRPrint = 0x01
Fri Dec 25 09:59:12 2009: Hardware reset with strategy 0 was performed
Fri Dec 25 09:59:12 2009: Enable Main Oscillator
Fri Dec 25 09:59:12 2009: Set PLL to 96MHz
Fri Dec 25 09:59:12 2009: Set Master Clock to 48MHz
Fri Dec 25 09:59:13 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:20 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:21 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:21 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:22 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:22 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:22 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:22 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:23 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
Fri Dec 25 09:59:23 2009: The stack pointer for stack 'CSTACK' (currently 0x00000000) is outside the stack range (0x00206100 to 0x00207100)
... и так далее.
3. Если хотите, чтобы Вам что-то посоветовали, опять таки - нужно больше информации, чтобы не играть в телепатов (как Вы это сделали?). Есть уже готовые примеры и рекомендации в апноутах от Atmel. У меня вроде все получилось - я не парился, взял все готовенькое, из примеров Atmel для IAR. Сначала отправлял вывод printf в DBGU (для этого вообще ничего не надо делать, просто взять готовый пример, там уже все украдено до нас), а потом научился и на свой графический индикатор LCD. См. статью
IAR EW ARM: как перенаправить вывод printf и putchar.