Jump to content

    
Sign in to follow this  
ih_

Вопрос по исходникам примеров для С2000

Recommended Posts

День добрый, Братцы!

(немного не в себе, прошу извинить :) )

 

Решил я "мигнуть светодиодом" на TMS320F28027.

Три дня танцев вокруг CCS и controlSUITE, и пример откомпилировался и зашился даже. :( А интернет то модемный (xDSL).

 

Стал смотреть как это чудо устроено... те исходники. Пока дошло, что собрано все в device.lib и хидеры c си файлами никак не сопоставляются на этапе компиляции.

 

Вот пару строк:

void WDOG_clearCounter(WDOG_Handle wdogHandle)
{
    WDOG_Obj *wdog = (WDOG_Obj *)wdogHandle;
    ENABLE_PROTECTED_REGISTER_WRITE_MODE;
    // write first sequence
    wdog->WDKEY = 0x55;
    // write second sequence
    wdog->WDKEY = 0xAA;
    DISABLE_PROTECTED_REGISTER_WRITE_MODE;
    return;
} // end of WDOG_clearCounter() function

 

или вот:

WDOG_Handle WDOG_init(void *pMemory, const size_t numBytes)
{
    WDOG_Handle wdogHandle;
    if(numBytes < sizeof(WDOG_Obj))
    return((WDOG_Handle)NULL);
    // assign the handle
    wdogHandle = (WDOG_Handle)pMemory;
    return(wdogHandle);
} // end of WDOG_init() function

Скажите зачем это все так сделано? В WDOG_init просто пребразование типа указателя, а про NULL после вызова никто и не вспомнил. А в WDOG_clearCounter разыменовывание указателя через переменную, чудно тоже. И в таком духе видимо вся периферия будет. Зачем так? На видео парень говорит про аж четыре уровня абстракции от аппаратуры. Это оно? Прошу объяснить, Братцы?

 

И вообще направьте путем Истины, как бы время компиляции экономить?. И прозреть на предмет работы с C2000? Среду унифицировать, а то как захочется новое ядро освоить, так мы вечные студенты по "средам".

 

Благодарю Вас, О Красноречивейшие из Трудолюбивейших :).

Share this post


Link to post
Share on other sites

сэкономть время сборки можно так

- не делать много файлов исходников, свести к минимуму

- включить потоковую сборку в паралельных процессах (оно там стардартно для мэйка с ключиком -j)

 

А на счет нула и прочего вы верно заметили и на счет абстракции, они просто её нее используют в коде, видимо по причине экономии тактов проца.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this