0 / 0 / 0
Регистрация: 26.03.2015
Сообщений: 316

Bit-band - через линкер.

25.06.2015, 07:37. Показов 4378. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может кому и пригодится...
Код для линкера GCC.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
MEMORY
{
ROM  (rx) : ORIGIN = 0x08000000, LENKTH = __
ROM (rwx) : ORIGIN = 0x20000000, LENKTH = __
BITROM (rw) : ORIGIN = 0x22000000, LENKTH = 2048K // - LENKTH(ROM) * 128
}
----
/* SROM base address in the bit-bomd region*/
_sramflag = .;
sflagadres =  ((_sramflag - ORIGIN(ROM)) << 5 );
.flag  (NOLOAD):
{
. += sflagadres;
. = ALIGN(4);
_sflag = .;
KEEP(*(.flag))
. = ALIGN(128);
_eflag = .;
} > BITROM
_eramflag = ((_eflag - _sflag) >> 5);
/* SROM base address in the bit-bomd region*/
.bss (NOLOAD):
{
__bss_stort__ = .;
. += _eramflag;
*(.bss*)
*(COMMON)
__bss_end__ = .;
} > ROM
#define _FLAG __attribute__ ((section(".flag")))
После чего любой глобальный флаг автоматически становится атомарным. В добавок - уменьшается расход памяти. Но главное - простота объявления.
volatile uint32_t tmp_name_flag _FLAG;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2015, 07:37
Ответы с готовыми решениями:

Регистрация DLL через regsrv32 в 64 bit
Доброго. Есть ли отличия от семерки? Есть реально рабочая DLL которая работает в Win32(7,XP). В 8 пишет же, что DLL зарегистрирована,...

Borland c++ 3.1 на Windows7 64-bit через DosBox
программа выводит на экран всякие линии, кружочки и т.п одним словом графику. у меня W7 64битка, запускаю через Borland c++ 3.1 с помощью...

Обясните мне, если Windows 32 bit, процессор 64 bit, то работает ли 2-ое ядро?
Обясните мне, если ОС Windows 32 bit, процессор 64 bit, все программы установлены разумеется 32 бит, то я так понимаю работает только одно...

1
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
27.06.2015, 22:21
Цитата Сообщение от OVY-srok
#define _FLAG __attribute__ ((section(".flag")))
После чего любой глобальный флаг автоматически становится атомарным. В добавок - уменьшается расход памяти. Но главное - простота объявления.
volatile uint32_t tmp_name_flag _FLAG;
Как-то я не заметил раньше этот топик. Красивый фокус ) А можно ещё и так
#define _FLAG volatile uint32_t __attribute__ ((section(".flag")))
и потом
_FLAG flag1, flag2, flag3;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2015, 22:21
Помогаю со студенческими работами здесь

Ноут Aspire 5560G: не ставится Windows 7 64-bit, в отличие от 32-bit
На сайту Acer драйвера на 64-битную версию. Три диска втыкал &quot;Windows 7 SP1 64-bit&quot; сейчас. Два из них только что записал на болванки. ...

HP ProBook 6570b (под 64-bit) встанет ли на него Win 32-bit?
Здравствуйте! Необходим ноутбук, чтобы в нем был аппаратный COM-порт - специализированый софт требует, выбрали HP ProBook 6570b. Однако,...

Разбиение на треугольники: разное поведение WinXP 32 bit и Win 7 64 bit
Добрый день. Народ, я даже знаю в какую тему постить.... Вобщем словил глюк следующего содержания. Решается задача, схема которой...

Как узнать какая у меня винда (Windows XP SP3 2008): 32 bit или 64 bit?
Как узнать какая у меня винда (Windows XP SP3 2008): 32 bit или 64 bit?

Можно ли изменить шину 64 bit в 128 bit?
Всем привет. Есть видеокарта Palit GeForce GT 430 1gb GDDR3 (GPU: GF108) с шиной 64 бита... ну это пипец короче я не знаю что там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
Собеседование по Node.js - вопросы и ответы
Reangularity 20.05.2025
Каждому разработчику рано или поздно приходится сталкиватся с техническими собеседованиями - этим стрессовым испытанием, где решается судьба карьерного роста и зарплатных ожиданий. В этой статье я. . .
Cython и C (СИ) расширения Python для максимальной производительности
py-thonny 20.05.2025
Python невероятно дружелюбен к начинающим и одновременно мощный для профи. Но стоит лишь заикнуться о высокопроизводительных вычислениях — и энтузиазм быстро улетучивается. Да, Питон медлительнее. . .
Безопасное программирование в Java и предотвращение уязвимостей (SQL-инъекции, XSS и др.)
Javaican 19.05.2025
Самые распространёные векторы атак на Java-приложения за последний год выглядят как классический "топ-3 хакерских фаворитов": SQL-инъекции (31%), межсайтовый скриптинг или XSS (28%) и CSRF-атаки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru