Место для получения программного обеспечения для встроенных компонентов?

Я задаюсь вопросом, знает ли кто-либо места в сети, что я могу купить или загрузить программные модули, записанные в C или C++, для взаимодействия между микропроцессорами и другими компонентами, как DACs, ADCs или UARTs. Вид подобных GitHub для встроенного программного обеспечения C. Это место существует?

6
задан Jonathan Leffler 23 January 2010 в 06:03
поделиться

7 ответов

Вы, возможно, ищете что-то под названием «Пакет поддержки платы» или BSP . Для заданной операционной системы он будет иметь коллекцию драйверов / библиотек, чтобы помочь вам общаться с аппаратным компонентом.

Сказать, что некоторые стандартные аппаратные интерфейсы для E.G. 16550 UART может иметь драйверы, которые поставляются с ОС.

3
ответ дан 17 December 2019 в 02:28
поделиться

Вы также можете взглянуть на «Строительные блоки встроенных систем Жана Лабрасса» Книга. У него есть несколько прямых библиотеков C для работы с UARTS, аналоговыми вводами / выводами, таймами и т. Д.

, конечно, вам все еще нужно провозить их до реализации фактического оборудования чипов (как указано другие ответы, вы обычно можете Получите Libs, чтобы помочь с этим из поставщиков чипов), но они могут быть удобной оболочкой, чтобы позволить вам легче переместить программное обеспечение более высокого уровня из одного устройства к другому. Там нет разрушающихся на земле, которые были бы особенно трудно сделать самостоятельно, но это там для принятия, так почему бы не? Даже если это не совсем то, что вы можете захотеть, это нога.

2
ответ дан 17 December 2019 в 02:28
поделиться

Обычно производитель устройства предоставляет вам libc, которую вы можете использовать для всех низкоуровневых вещей.

1
ответ дан 17 December 2019 в 02:28
поделиться

В C++: std:: wcout < < L «wstr [» < < wstr < < L ']' < < std:: endl;

В C: printf («% ls\n\n», wstr);

-121--5044680-

Я только что написал этот код JavaScript (используя Prototype для манипуляций DOM ):

var require = (function() {
    var _required = {};
    return (function(url, callback) {
        if (typeof url == 'object') {
            // We've (hopefully) got an array: time to chain!
            if (url.length > 1) {
                // Load the nth file as soon as everything up to the
                // n-1th one is done.
                require(url.slice(0, url.length - 1), function() {
                    require(url[url.length - 1], callback);
                });
            } else if (url.length == 1) {
                require(url[0], callback);
            }
            return;
        }
        if (typeof _required[url] == 'undefined') {
            // Haven't loaded this URL yet; gogogo!
            _required[url] = [];

            var script = new Element('script', {
                src: url,
                type: 'text/javascript'
            });
            script.observe('load', function() {
                console.log("script " + url + " loaded.");
                _required[url].each(function(cb) {
                    cb.call(); // TODO: does this execute in the right context?
                });
                _required[url] = true;
            });

            $$('head')[0].insert(script);
        } else if (typeof _required[url] == 'boolean') {
            // We already loaded the thing, so go ahead.
            if (callback) {
                callback.call();
            }
            return;
        }

        if (callback) {
            _required[url].push(callback);
        }
    });
})();

Использование:

<script src="prototype.js"></script>
<script src="require.js"></script>
<script>
    require(['foo.js','bar.js'], function () {
        /* Use foo.js and bar.js here */
    });
</script>

Gist: http://gist.github.com/284442 .

-121--1743685-

сначала решите, на какой производитель чипов пойти... затем, зайдите на их официальный сайт или свяжитесь с ними, вы получите ограничения для поддерживаемых IO и других функций связи.

0
ответ дан 17 December 2019 в 02:28
поделиться

Хорошо, что насчет ТИ? BSP - это то, что я знаю, но на самом деле они не существуют для программного обеспечения, которое существует ниже уровня O/S.

2, скажем так, я хотел, чтобы программное обеспечение заставило микроконтроллер TI MSP430 говорить с DAC7565. Я действительно не могу найти программное обеспечение, которое относилось бы к этим двум каким-либо надежным способом.

Я говорю о полном пакете программного обеспечения, что-то эквивалентное драгоценному камню на Ruby, где я мог бы вызвать такие функции, как "OutputVoltage(unsigned int voltage, unsinged int channel)" и забыть об аппаратной реализации.

@nobugz Да, я согласен, но это ужасно сдерживает. C должен быть как Ruby, где вы можете сосредоточиться только на том, что вы хотите делать, не тратя время на ограничение себя из-за доступности программ....

0
ответ дан 17 December 2019 в 02:28
поделиться

@Shaihi

Я нет, я являюсь инженером программного обеспечения с инженерной фирмой, которые настраивают свои собственные доски. Я просто не могу поверить, что по всему миру и всей истории программного обеспечения, которую я первый человек, который должен взаимодействовать на этом микроконтроллере и этот ЦАП. Поэтому он должен существовать где-то. Может быть, я не могу забрать свои руки, но кто-то, где-то сделал это раньше.

Я очень молодой инженер, но это просто похоже на сотни или тысячи парней, которые снова и снова написали одно и то же программное обеспечение. И на вершине этого, поскольку есть много программных инженеров, которые ужасно хорошо пользуются абстракции и повторному действию, я готов сделать ставку, есть много инженеров, которые в конечном итоге снова написание того же времени и времени программного обеспечения, потому что программное обеспечение они снова Написать слишком плотно связан с этим конкретным применением.

Просто похоже на гигантскую трату машиностроения.

0
ответ дан 17 December 2019 в 02:28
поделиться

Проверяли ли вы примечания по применению на веб-сайте поставщика A / D? У них очень часто есть код C. Проблема с кодом на языке ассемблера заключается в том, что существует так много различных поставщиков АЦП и микропроцессоров и так много разных способов подключения микросхемы, что они не могут предоставить библиотеку общего назначения. Кроме того, программист может захотеть опросить флаг конца преобразования или разрешить микросхеме прерываться, когда преобразование завершено. Это очень специфично для приложения. Лучше всего надеяться, что у поставщика есть пример кода, который послужит руководством по использованию микросхемы. Хорошей новостью является то, что руководства пользователя для этих периферийных устройств намного лучше, чем они были 20 лет назад.

Кроме того, у поставщика, вероятно, есть инженеры по приложениям, которые помогут вам с разработкой.

0
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: