cortex-m1 newlib-nano printf not works

Asked by almaz

Hello!
I am using launchpad's toolchain for developing SW for cortex-m1 device.

I try to use newlib-nano to print data in that manner:

printf("a");

There is no luck.
Program not start at all.
 There is some weird instructions in Reset_Handler while debugging program.
For using that library I implement _write() function:
int _write(int file, char *ptr, int len) {
    int n;
    switch (file) {
    case STDOUT_FILENO: /*stdout*/
        for (n = 0; n < len; n++) {
         usartSendChar(*ptr++);
        }
        break;
    case STDERR_FILENO: /* stderr */
        for (n = 0; n < len; n++) {
         usartSendChar(*ptr++);
        }
        break;
    default:
        errno = EBADF;
        return -1;
    }
    return len;
}

toolchain's version is:
arm-none-eabi-gcc.exe (GNU Tools for ARM Embedded Processors) 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision 221220]

compiler command:
arm-none-eabi-gcc -std=c99 -DUSE_STDPERIPH_DRIVER -O0 -g3 -Wall -c -mthumb -mcpu=cortex-m1 -O0 -Wall -fmessage-length=0 -ffunction-sections -fdata-sections -fsingle-precision-constant -fno-builtin -g3 -MMD -MP -MF"..."

linker command:
arm-none-eabi-gcc -nostartfiles -mcpu=cortex-m1 -mthumb -T../MDR1986BE1T.ld -nostartfiles -Xlinker --gc-sections -Wl,--gc-sections -Wl,-Map=mdr1986ve1t_lwip.map -specs=nosys.specs --specs=nano.specs -lc -lnosys -o "mdr1986ve1t_lwip.elf"

Content of MAP file:
c:/users/al/desktop/dropbox/eclipse/arm_toolchain/bin/../lib/gcc/arm-none-eabi/4.9.3/armv6-m\libgcc.a(_udivsi3.o)
                              ./user/Main.o (__aeabi_uidiv)
c:/users/al/desktop/dropbox/eclipse/arm_toolchain/bin/../lib/gcc/arm-none-eabi/4.9.3/armv6-m\libgcc.a(_dvmd_tls.o)
                              c:/users/al/desktop/dropbox/eclipse/arm_toolchain/bin/../lib/gcc/arm-none-eabi/4.9.3/armv6-m\libgcc.a(_udivsi3.o) (__aeabi_idiv0)
c:/users/al/desktop/dropbox/eclipse/arm_toolchain/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv6-m\libc_nano.a(lib_a-printf.o)
                              ./user/Main.o (printf)
.....

What I do wrong? Explain me please.

Question information

Language:
English Edit question
Status:
Expired
For:
GNU Arm Embedded Toolchain Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.