Jump to content
Форум по продукции MOXA

Search the Community

Showing results for tags 'toolchain'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Настройка и использование оборудования MOXA
    • Промышленный Ethernet
    • Преобразователи RS-232/422/485 в Ethernet
    • Мультипортовые платы и модули RS-232/422/485
    • Беспроводное оборудование
    • Системы распределенного ввода/вывода
    • Встраиваемые коммуникационные компьютеры
    • Медиаконвертеры
    • Программное обеспечение
    • Барахолка
  • Вспомогательные материалы
    • Документация на русском языке
    • Visio-изображения
    • Отчеты об использовании оборудования Moxa
  • Новости и события
  • Обратная связь
    • Работа форума и сайта

Calendars

  • Основной календарь

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Интересы

Found 1 result

  1. Здравствуйте, Столкнулся с такой вот проблемой при разработке программы для IA-261. Используется самый последный toolchain с сайта моксы. Привожу простенький код: int len = 10; uint16_t ar[len]; uint16_t *ptr16; uint32_t *ptr32; for(int i=0;i<len;i++) ar=i; for(int i=0;i<(len-1);i++){ ptr16 = &ar; ptr32 = (uint32_t*)&ar; printf("ar[%d] = %d, ptr16 = %p, ptr32 = %p, *ptr16 = %d, *ptr32 = %d\n", i, ar, ptr16, ptr32, *ptr16, *ptr32); } Компилирую под Linux Debian в родном gcc (x86), после запуска получаю вот распечатку, здесь видно что все ОК! ar[0] = 0, ptr16 = 0xbfa975bc, ptr32 = 0xbfa975bc, *ptr16 = 0, *ptr32 = 65536 ar[1] = 1, ptr16 = 0xbfa975be, ptr32 = 0xbfa975be, *ptr16 = 1, *ptr32 = 131073 ar[2] = 2, ptr16 = 0xbfa975c0, ptr32 = 0xbfa975c0, *ptr16 = 2, *ptr32 = 196610 ar[3] = 3, ptr16 = 0xbfa975c2, ptr32 = 0xbfa975c2, *ptr16 = 3, *ptr32 = 262147 ar[4] = 4, ptr16 = 0xbfa975c4, ptr32 = 0xbfa975c4, *ptr16 = 4, *ptr32 = 327684 ar[5] = 5, ptr16 = 0xbfa975c6, ptr32 = 0xbfa975c6, *ptr16 = 5, *ptr32 = 393221 ar[6] = 6, ptr16 = 0xbfa975c8, ptr32 = 0xbfa975c8, *ptr16 = 6, *ptr32 = 458758 ar[7] = 7, ptr16 = 0xbfa975ca, ptr32 = 0xbfa975ca, *ptr16 = 7, *ptr32 = 524295 ar[8] = 8, ptr16 = 0xbfa975cc, ptr32 = 0xbfa975cc, *ptr16 = 8, *ptr32 = 589832 Тот же самый код, скомпилированный под arm-linux-gcc и запущенный в IA-261 выдает такие вот чудеса: ar[0] = 0, ptr16 = 0xbed54c8c, ptr32 = 0xbed54c8c, *ptr16 = 0, *ptr32 = 65536 ar[1] = 1, ptr16 = 0xbed54c8e, ptr32 = 0xbed54c8e, *ptr16 = 1, *ptr32 = 1 ar[2] = 2, ptr16 = 0xbed54c90, ptr32 = 0xbed54c90, *ptr16 = 2, *ptr32 = 196610 ar[3] = 3, ptr16 = 0xbed54c92, ptr32 = 0xbed54c92, *ptr16 = 3, *ptr32 = 131075 ar[4] = 4, ptr16 = 0xbed54c94, ptr32 = 0xbed54c94, *ptr16 = 4, *ptr32 = 327684 ar[5] = 5, ptr16 = 0xbed54c96, ptr32 = 0xbed54c96, *ptr16 = 5, *ptr32 = 262149 ar[6] = 6, ptr16 = 0xbed54c98, ptr32 = 0xbed54c98, *ptr16 = 6, *ptr32 = 458758 ar[7] = 7, ptr16 = 0xbed54c9a, ptr32 = 0xbed54c9a, *ptr16 = 7, *ptr32 = 393223 ar[8] = 8, ptr16 = 0xbed54c9c, ptr32 = 0xbed54c9c, *ptr16 = 8, *ptr32 = 589832 Т.е. каждый второй результат *ptr32 неверный. Как решить эту ситуацию, с учетом того, что потребуется далее конвертить еще во float, double.
×
×
  • Create New...