Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кто-нибудь использовал TLS для Texas MSP430
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
SMRM
Здравствуйте!
Пытаюсь настроить TLS в Dlib Iar. В проекте использую uCOS-III и их пример построения в файле os_tls.c.
Ранее для проекта на LPC4078 все работало.
Нужна TLS для защиты heap, так как вызывается оператор new в разных потоках.
В новом проекте - микроконтроллер MSP430F5437a.
Линкер выдает ошибку:
Error[e46]: Undefined external "__cstart_init_tls" referred in ?errno
Пока не могу понять как отменить инициализацию TLS data segment в Dlib. Для LPC4078 инициализация вроде отключена по умолчанию.
Может кто что подскажет или укажет на какой-то пример для MSP430.
Вторая проблема возникла при определении размера занимаемого кучей с помощью __iar_dlmallinfo().
Также IAR for MSP выдает ошибку:
Error[e46]: Undefined external "__iar_dlmallinfo" referred in CommObjectDef,
хотя для Iar for Arm нет никаких проблем.
Заранее благодарю за помощь.
k155la3
Если Вы используете файл линкера по умолчанию, то возможно он потребует коррекции для TLS.
Скопируйте его (файл xcl) в каталог проекта и в опциях укажите что использовать его а не умолчательный который в директории IAR.
Также (возможно) потребуется отредактировать стартап-код. Его исходник лежит в директории IAR.
Прикомпонуйте его копию к проекту.
В нем (возможно, посмотрите сами) есть "подстроечные" #define
--
Могу ошибаться, так что извиняйте если чевой наплел sm.gif))

ps
Код
// ************************************************
// XLINK configuration file for MSP430F5438A
// Copyright 1996-2010 IAR Systems AB
// ************************************************
    . . . . . .
// segment         Usage
// -------         --------------------------
// CSTACK          Runtime stack
// TLS16_I         Thread-local storage for main thread
//                 (require custom runtime library)
    . . . . . .

+ C:\Program Files\IAR Systems\Embedded Workbench 6.0\430\config\template\project\DLib\Normal\dl430xsdnr\ . . . . .
Код
cstartup.s43:
        . . . . . .
        PUBLIC  __cstart_init_tls
        EXTERN  __data16_memcpy

__cstart_init_tls
        MOV.W   #SFB TLS16_I,    CW0
    XMOVROPIADDR SFB TLS16_ID, CW1
        MOV.W   #sizeof TLS16_I, CW2

        XXCALL  __data16_memcpy
        . . . . .

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.