embedded- все статьи тега


Можно ли поручить C не инициализировать глобальные массивы нулем?

Я пишу встроенное приложение, и почти вся моя оперативная память используется глобальными байт-массивами. Когда моя прошивка загружается, она начинается с перезаписи всего раздела BSS в оперативной памяти с нулями, что в моем случае совершенно не нужно. Могу ли я каким-то образом указать компилятору, что ему не нужно инициализировать нуль определенные массивы? Я знаю, что это также можно решить, объявив их указателями и используя malloc (), но есть несколько причин, по которым я хочу этого избе ...

преобразование ASM в C (не обратный инженер)

Я погуглил и увидел удивительное количество легкомысленных ответов, в основном смеющихся над Аскером за то, что он задал такой вопрос. Микрочип предоставляет некоторый исходный код бесплатно (я не хочу публиковать его здесь, если это нет-нет. В основном, google AN937, нажмите на первую ссылку, и там есть ссылка на "исходный код" и его сжатый файл). Он в ASM, и когда я смотрю на него, я начинаю косить глазами. Я хотел бы преобразовать его в нечто, напоминающее язык типа c, чтобы я мог следова ...

Советы, необходимые для начинающих ARM Cortex M3

Я скоро отправлюсь на подножку ARM Cortex M3 с официальным обучением (сторона процессора). Так вот, я немного занимался Arduino и AVR раньше и имею некоторые основы в электронике, но я в основном разработчик программного обеспечения. Я прочитал большинство тем здесь и совсем немного в другом месте о доступных инструментах, и они были действительно полезны. Мне нужно что-то, чтобы соединить все эти элементы ответа вместе. Я хотел бы снабдить себя стартовым комплектом, который является общим дос ...

Автоматизация настройки компоновщика в IAR Embedded Workbench

Я работаю над проектом прошивки, в котором я должен сделать проверку crc16 на целостность flash. Crc вычисляется с помощью линкера IAR Xlink и хранится в конце вспышки. Снова crc вычисляется во время выполнения из кода и сравнивается с сохраненным значением во флэш-памяти для проверки целостности. Однако мы можем вычислить crc только на сегменте кода флэш-памяти. Его размер может меняться всякий раз, когда мы вносим некоторые изменения в код. Могу ли я автоматизировать этот процесс, который я в ...

Могу ли я использовать "инструкцию" TCM в процессоре Atmel SAM E70 для обработки данных?

Я разрабатываю приложение для компании Atmel SAME70Q21 микропроцессор. Этот микроконтроллер имеет ядро ARM Coretex-M7. Компания Atmel реализовали руку сильносвязанной памяти (TCM) в данном конкретном варианте микроконтроллера. Atmel, по-видимому, классифицирует TCM на два раздела: "ITCM" (инструкция TCM) и" DTCM " (данные TCM) В настоящее время я использую DTCM для быстрого хранения, обычно от прерываний. Тем не менее, ITCM в настоящее время фактически выключен, хотя система конфигурации для ...

Как промыть входной буфер UDP-сокета в C?

Как очистить входной буфер (если он вообще существует) UDP-сокета в C ? Я работаю над встроенной средой Linux и использую C для создания собственного приложения. Существует несколько таких встроенных машин в одной и той же сети, и когда на одной из них происходит событие (назовем его информатором), информатор должен отправить сетевое сообщение на сетевой широковещательный адрес, чтобы все машины в сети (включая информатора) знали об этом событии. событие и выполняет некоторые действия в соответ ...

Будет ли инициализатор строки несколько тратить память?

Чтобы инициализировать массив символов, обычно я пишу: char string[] = "some text"; Но сегодня один из моих одноклассников сказал, что нужно использовать: char string[] = {'s', 'o', 'm', 'e', ' ', 't', 'e', 'x', 't', ''}; Я сказал ему, что это безумие-отказаться от удобочитаемости и краткости, но он утверждал, что инициализация массива символов строкой фактически создаст две строки, одну в стеке, а другую в памяти только для чтения. При работе со встроенными устройствами это может прив ...

сборка для ARMv6 с gnueabihf

Я пытаюсь создать приложение для ARMv6, но не получается. Я думаю, что проблема заключается в цепочке инструментов, которая поддерживает жесткий Float, но ARMv6 этого не делает. Ну, сначала я установил-march=armv6, где компиляция завершается неудачей. /opt/gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux/arm-linux-gnueabihf/libc/usr/include/bits/byteswap.h: In function ‘__bswap_32’: /opt/gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux/arm-linux-gnueabihf/libc/usr/include/bits/byteswap.h:45:1 ...

Кросс-компиляция Linux для архитектуры ARM

Я заинтересован в кросс-компиляции ядра Linux для цели ARM на хосте x86. Есть ли какие-то хорошие практики, которые вы рекомендуете? Какой набор для кросс-компиляции, на ваш взгляд, является лучшим? Вы создали пользовательскую среду кросс-компиляции? Если да, то какие у вас есть советы? Это хорошая идея? ...

Понимание Linux / proc / id / maps

Я пытаюсь понять использование памяти моего встроенного приложения Linux. Элемент /proc/pid/maps утилита / файл, кажется, хороший ресурс для просмотра деталей. К сожалению, я не понимаю все столбцы и записи. есть ли хороший ресурс / документация для proc/pid/maps файловые утилиты/? что означает анонимный индекс 0 записей? Это, кажется, некоторые из больших сегментов памяти. ...

Когда CRC более подходит для использования, чем MD5/SHA1?

когда целесообразно использовать CRC для обнаружения ошибок по сравнению с более современными функциями хэширования, такими как MD5 или SHA1? Первый проще реализовать на встроенном оборудовании? ...