Jump to content

    
Sign in to follow this  
Haamu

Atmel Studio + ASF + SAM4S

Recommended Posts

Такое ощущение складывается, что ASF писала не одна команда программистов, а будто куски нахватали из разных мест и собрали в кучу.

 

Категорически неправильное ощущение. Все дело в том, что ASF API работает на всех камнях от Atmel'а (AVR, AVR32, xMega, Cortex'ы). Как следствие универсальности усложненность и избыточность. Поэтому подходит для быстрого прототипирования, но не желательно (не невозможно, а нежелательно) применять его в конечном изделии. Но тенденция в Ваших вопросах мне нравится. Еще немного и Вы поймете, что ASF или STM Lib всего лишь средство прототипирования.

 

Что до кокретно взятого SPI. Возъмем его API. Что мы имеем?

spi_set_baudrate_div(...)
spi_set_bits_per_transfer(...)
spi_set_clock_phase(...)
spi_set_clock_polarity(...)
spi_enable_clock(...)

Вы видите более удобной запись в стиле ST:

struct {
    .baud = ...
    .bits = ....
    .CPA = ....
    .CPH = ....
} spi_master;

eneble_periph_clock(...)
spi_deinit();
spi_init(spi_master):

Ну не знаю... Я даже не буду говорить о том, что память под структуру выделяется либо глобально (и забирает ее у проекта) либо в стеке и тем самым заставляя его расти. Но он просто выглядит куда более громозко и неиформативно. Конечно, если знать что такое SPI, какие главные параметры ему надо выставить. Но ведь даже ST не снимает этого ограничения. Я в свое время долго думал над этой их структурой. Половина структуры относится к SPI, половина к I2S при этом что к чему неочевидно. А еще и есть поля, относящиеся и к одному и к другому. А хваленые коментарии в коде не помогают чуть меньше чем совсем. Только чтение datasheet и понимание текста функции init(). Здесь (IHMO) все гораздо прозрачнее.

Да и вообще, но по моим ощущениям именно это и есть крайне неудобная часть в STM библиотеке. Хуже только USB стек с бесконечными

unsigned char devDesc[] = {
    0xFA, 0xFB,  // wVendorId
    0x00, 0x01,  // wProductId
    ....
}

Только за это расстрелял бы на месте.

Edited by Alex A. Mihaylov

Share this post


Link to post
Share on other sites

Блин, пришлось воспользоваться процессором ATSAM3A (из-за USB host), к которому нет обычных примеров от Атмела, а есть только ASF.

 

Вот мне было бы интересно просверлить голову тому чуваку, который эту ASF затеял и посмотреть что там есть.

Хоть прям STM32 бери...

Share this post


Link to post
Share on other sites
Вот мне было бы интересно просверлить голову тому чуваку, который эту ASF затеял и посмотреть что там есть.

 

Мне тоже ))).

Свалили все в одну кучу.

До этого у них был AT91SoftwarePakage (или как-то так) все гораздо прозрачнее было.

 

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