Лучшая платформа для изучения встроенного программирования? [закрытый]

Когда вы объявляете ссылочную переменную (т. е. объект), вы действительно создаете указатель на объект. Рассмотрим следующий код, в котором вы объявляете переменную примитивного типа int:

int x;
x = 10;

В этом примере переменная x является int, и Java инициализирует ее для 0. Когда вы назначаете его 10 во второй строке, ваше значение 10 записывается в ячейку памяти, на которую указывает x.

Но когда вы пытаетесь объявить ссылочный тип, произойдет что-то другое. Возьмите следующий код:

Integer num;
num = new Integer(10);

Первая строка объявляет переменную с именем num, но она не содержит примитивного значения. Вместо этого он содержит указатель (потому что тип Integer является ссылочным типом). Поскольку вы еще не указали, что указать на Java, он устанавливает значение null, что означает «Я ничего не указываю».

Во второй строке ключевое слово new используется для создания экземпляра (или создания ) объекту типа Integer и переменной указателя num присваивается этот объект. Теперь вы можете ссылаться на объект, используя оператор разыменования . (точка).

Exception, о котором вы просили, возникает, когда вы объявляете переменную, но не создавали объект. Если вы попытаетесь разыменовать num. Перед созданием объекта вы получите NullPointerException. В самых тривиальных случаях компилятор поймает проблему и сообщит вам, что «num не может быть инициализирован», но иногда вы пишете код, который непосредственно не создает объект.

Например, вы можете имеют следующий метод:

public void doSomething(SomeObject obj) {
   //do something to obj
}

В этом случае вы не создаете объект obj, скорее предполагая, что он был создан до вызова метода doSomething. К сожалению, этот метод можно вызвать следующим образом:

doSomething(null);

В этом случае obj имеет значение null. Если метод предназначен для того, чтобы что-то сделать для переданного объекта, целесообразно бросить NullPointerException, потому что это ошибка программиста, и программисту понадобится эта информация для целей отладки.

Альтернативно, там могут быть случаи, когда цель метода заключается не только в том, чтобы работать с переданным в объекте, и поэтому нулевой параметр может быть приемлемым. В этом случае вам нужно будет проверить нулевой параметр и вести себя по-другому. Вы также должны объяснить это в документации. Например, doSomething может быть записано как:

/**
  * @param obj An optional foo for ____. May be null, in which case 
  *  the result will be ____.
  */
public void doSomething(SomeObject obj) {
    if(obj != null) {
       //do something
    } else {
       //do something else
    }
}

Наконец, Как определить исключение & amp; причина использования Трассировки стека

22
задан Mat 6 March 2012 в 16:17
поделиться

19 ответов

"встроенное программирование" является очень широким термином. AVR находится вполне прилично в той категории, но это - шаг ниже ARM, в котором оба более просто использовать, а также менее мощный.

, Если Вы просто хотите играть вокруг с ARM, купите DS Nintendo или Усовершенствование Gameboy. Они являются очень дешевыми по сравнению с аппаратными средствами внутри (чудеса массового производства), и они оба имеют наборы инструментальных средств свободного развития базирующийся прочь gcc, который может скомпилировать в них.

, Если Вы хотите играть вокруг со встроенным Linux, , BeagleBoard надеется быть хорошим вариантом, только 150$, и это имеет тонну функций.

Лично я думаю, что AVR является лучшим для 8-разрядных платформ меньшего размера, и ARM является лучшим для более крупных, более мощных 32-разрядных основанных платформ. Как многие вентиляторы AVR, мне не нравится PIC. Это просто кажется хуже в значительной степени каждым способом. Также избегайте чего-либо, что требует, чтобы Вы записали любой тип ОСНОВНЫХ.

24
ответ дан davr 29 November 2019 в 03:36
поделиться

Второй, что:

платформа Ардуино http://www.arduino.cc

HTH

0
ответ дан plan9assembler 29 November 2019 в 03:36
поделиться

Для моего курса Архитектуры ЭВМ я должен был работать и с PIC и с AVR; по-моему, PIC была легче работать с, но это, возможно, потому что это - то, что мы работали с большинством, и у нас была большая часть времени для привыкания к. Мы использовали AVR, возможно, только пару раз, таким образом, я не мог приобрести навык его отлично, но это также было ничто чрезмерно сложное, или по крайней мере не более печальное, чем другой.

я думаю, что можно также заказать образцы микропроцессора от веб-сайта Микрочипа, таким образом, Вы могли также начать с этим?

0
ответ дан Sergio Morales 29 November 2019 в 03:36
поделиться

Для забавного проекта протестировать, взгляните на , xgamestation

, Но для более промышленного использовал одно программирование решения для микросхемы, посмотрите PIC

0
ответ дан epatel 29 November 2019 в 03:36
поделиться

Много лун назад я работал с 8 горькими лекарствами как 68HC05 и Z80, более поздний AVR и (16-разрядный) MSP430. Однако новые проекты были на ARM7. Несколько производителей предлагают контроллеры ARM, во всех цветах и размерах (хорошо, не действительно цвете).

ARM (7) заменяет 8-разрядную архитектуру: это более производительно (32-разрядный RISC в более быстрых командных циклах, чем наиболее с 8 горькими лекарствами), имеет больше памяти и доступно с несколькими IO-конфигурациями. Я работал с контроллерами NXP LPC2000, которые также недороги (< 1 доллар США для 32-горького!).

, Если Вы находитесь в Европе , http://www.olimex.com/dev/index.html имеет некоторые хорошие недорогие макетные платы. Работы в остальной части мира также :-)

1
ответ дан stevenvh 29 November 2019 в 03:36
поделиться

Если Вы просто хотите весело провести время, то попробуйте микросхему Пропеллера Параллакса. Игровая платформа ГИДРЫ похожа на уничтожение. Существует компилятор C за 100$ для него теперь.

я запустил на ОСНОВНЫХ штампах, перемещенных вверх через микросхемы SX и PIC в 8051, тогда 68 332 с, различный DSPS, FPGA мягкие процессоры, и т.д.

, 8051 более полезны в реальном мире..., вещи не уйдут. Существуют ТОННЫ производных и сумасшедшего материала для них. (Просто держитесь подальше от DS80C400), энергетика абсолютно полна их.

Запускаются с чего-то крошечного. Если у Вас есть внешняя RAM и много регистров..., каково различие между этим и SBC?

1
ответ дан darron 29 November 2019 в 03:36
поделиться

Я хотел бы предложить beagleboard от TI. Это имеет Omap3 на нем. Это - ЦП Коры-A8 ARM11, C64x + DSP и видеоускоритель также.

плата не нуждается в дорогом jtag устройстве. Последовательный кабель SD-карта - все, что необходимо начать. Плата стоит только 150$ и существует очень активное сообщество.

www.beagleboard.org

2
ответ дан Nils Pipenbrinck 29 November 2019 в 03:36
поделиться

Вашему виду вопроса ответили в этот вопрос .

Для добавления к этому встроенная промышленность процессора очень сегментируется, она не имеет крупного игрока как Intel/x86, для "настольной" промышленности процессора. Процессор ARM действительно имеет значительную долю, также - MIPS я верю, и существуют многие более определенный микроконтроллер меньшего размера как доступные микросхемы (как MSP430 и т.д. от TI).

Что касается документации, я делаю встроенную разработку для дневного задания, и документация, к которой у нас есть доступ (как разработчики программного обеспечения) довольно редка. Ваш лучший выбор состоит в том, чтобы использовать документацию, доступную на сайте производителей процессоров.

1
ответ дан Community 29 November 2019 в 03:36
поделиться

Ардуино , кажется, предпочтительная платформа в эти дни для новичков, хотя существует много других. Мне нравится Olimex платы лично, но они не действительно для новичков.

Микрочип диапазон PIC центральных процессоров также превосходен для новичков, особенно если Вы хотите программировать в ассемблере.

BTW, Ассемблер не используется так, как это привыкло для. Общее правило со встроенным состоит в том, если у Вас есть 4k памяти или больше, используйте C. Вы получаете мобильность, и можно разработать код быстрее.

я предполагаю, что это зависит от Вашего уровня квалификации и что Вы хотите сделать с микросхемой. Я обычно выбираю, который встроил микросхему для использования доступными периферийными устройствами. Если Вы хотите USB-порт, найдите один с USB встроенный, если Вы хотите аналог-к-цифровому, найдите один с ADC и т.д., Если у Вас есть простое приложение, используйте 8-разрядное, но если Вам нужно серьезное перемалывание чисел, пойдите 32 бита.

2
ответ дан Adam Pierce 29 November 2019 в 03:36
поделиться

Хорошим выбором был бы PIC18 Микрочипом

  • , Это имеет довольно много материала, документации, учебных руководств и проектов в Интернете

  • Свободный IDE и компилятор.

  • можно вытянуть собственного писателя флэш-памяти через несколько минут. (Хотя для отладчика для работы необходимо будет работать усерднее)

  • , Если Вы будете студентом (или имеет студенческий адрес электронной почты), то Микрочип отправит Вам микросхемы бесплатного образца. Так в основном у Вас может быть полная среда разработки для близко ни к чему.

  • PIC довольно распространен в промышленности. Конкретно как контроллеры для роботов по некоторым причинам, хотя они могут сделать настолько больше.

2
ответ дан shoosh 29 November 2019 в 03:36
поделиться

TI MSP430 является большой платформой для изучения, как программировать микроконтроллеры. TI имеет разнообразие Бесплатные инструменты и [приблизительно 112] дешевые оценочные платы (запускающийся на уровне 20$). Плюс, это - низкая мощность, современный микроконтроллер.

6
ответ дан Nate 29 November 2019 в 03:36
поделиться

ADI Blackfin является другой опцией, так как это - вполне прямая архитектура к программе, все же может также сделать, некоторый довольно значительный материал DSP должен Вы принимать решение спуститься по тому маршруту. Помогает, что ассемблер довольно нормален также.

ШТАМП Blackfin платы являются недорогим (~ 100$ в последний раз, я проверил), путь в, и они поддерживают свободные инструменты GCC и uClinux.

Безотносительно архитектуры Вы выбираете, я определенно рекомендовал бы сначала загрузить toolchain\SDK и просмотреть демонстрационные проекты и учебные руководства - обычно наличие определенной пьесы. Можно часто становиться довольно знакомыми с архитектурой через моделирование, даже не касаясь никаких аппаратных средств.

6
ответ дан Sean 29 November 2019 в 03:36
поделиться

ARM имеет самую хорошую систему команд широко используемых встроенных платформ, оставлять Вас освобождает для взятия общих принципов записи программного обеспечения для встроенных платформ, не увязая в странных деталях как неортогональные регистры или отложенные передачи управления. Существует много эмуляторов - собственный ARM, в то время как не свободный, точно циклом; и огромное разнообразие программируемых основанных на ARM аппаратных средств является дешевым и легким прибыть также.

6
ответ дан moonshadow 29 November 2019 в 03:36
поделиться

Самостоятельно я работал во встроенном программировании в течение 9 лет теперь и имею опыт в TI MSP430, AVR Atmel (несколько ароматов) и буду использовать ARM скоро.

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

8
ответ дан DarthNoodles 29 November 2019 в 03:36
поделиться

Если бы Вы просто хотите играть вокруг с ним, я предложил бы платформу Ардуино ( http://www.arduino.cc ). Это основано на ATmega168 или ATmega8, в зависимости от версии. Это использует подобное языку C и имеет его собственный IDE.

10
ответ дан Jarett Millard 29 November 2019 в 03:36
поделиться

Смотрите на Обработка и связанный Ардуино и Монтажные панели.

1
ответ дан Steve Lacey 29 November 2019 в 03:36
поделиться

Для изучения Вы не можете пойти мимо AVR. Микросхемы являются дешевыми, и они будут работать с нулевыми внешними компонентами - они также предоставляют достаточно тока для управления светодиодом прямо от порта.

Можно запустить с дешевого программиста, такого как леди-ada's USBTinyISP (22 USD$ для набора), который может привести в действие плату с 5 В от USB-порта. Получите бесплатные инструменты WinAVR (базирующийся GCC) и AVRStudio и получите маленький проект, работающий в мгновение ока.

Да AVRs имеют ограничения - но программное обеспечение разработки для микроконтроллеров в основном о руководящих ресурсах и справляющийся с теми проблемами. Маловероятно, что Вы испытаете проблемы, такие как исчерпывание стекового пространства, RAM или ROM при создании hobbist проектов для мощных платформ ARM.

Тем не менее ARM является также большой платформой, которая широко используется в промышленности, однако, для изучения, что я настоятельно рекомендую AVRs.

0
ответ дан 29 November 2019 в 03:36
поделиться

Я бы предложил бы серию Pic18F Microchip. Я только что начал развиваться для них с помощью эмулятора в области реализации в цепи, но ChakiT2 является достойным отладчиком для цены. Вы могли бы сказать это для AVR, но для устройства по всему Интернету происходит большое значение. Я смог есть A - Buggy, но функционал - встроенное устройство USB, запущенное в течение нескольких дней из-за всей болтовни Pic Chatter.

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

0
ответ дан 29 November 2019 в 03:36
поделиться

Texas Instruments выпустила очень интересный набор для разработки по очень низкой цене: eZ430-Chronos Development Tool содержит MSP430 с дисплеем и различными датчиками в спортивных часах, включая usb отладочный программатор и usb радио точку доступа за 50$

Есть также вики, содержащая много и много информации.

Я уже создал предложение на stackexchange для eZ430-Chronos Kit.

0
ответ дан 29 November 2019 в 03:36
поделиться
Другие вопросы по тегам:

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