Поиск
Показаны результаты для тегов 'clrex'.
-
здравствуйте. к сожалению С/C++ компиллеры не могут использовать все иструкции ядра, поскольку язык программирования (с/c++) - всетаки язык формального описания и не позволяет разработчику выразить на нем все свои желания, о которых о части позаботились разработчики ядра процессора. в свете сказанного очевидно что без применения асма в 'узких местах" - новый процессор тановится таким же ''старым" и мы получаем дядю Васю забивающего магнитофоном гвозди. осознание вышескзанного заставило наконецто залесть в мануал и потратить время на изучение СM3 - результат печальный. ниже приведен список команд - названи красивые и заманчивые, но мне непонятно как они работают, тоесть для чего они нужны. последняя вроде понятно как работет но непонятно кудаее можно прикрутить с максимальной пользой, в какихто алгоритмах же она заменит кучу кода - вопрос в каких. первые три особо загадочные, на них у меня большие надежды. просьба уже разобравшихся пролить свет. зарание спасибо. Data memory barrier DMB <c> Data synchronization barrier DSB <c> Instruction synchronization barrier ISB <c> Send event SEV <c> Load register exclusive calculates an address from a base register value and an immediate offset, loads a word from memory, writes it to a register LDREX<c> <Rt>,[<Rn>{,#<imm>}] STREX <c> <Rd>,<Rt>,[<Rn>{,#<imm>}] Clear exclusive clears the local record of the executing processor that an address has had a request for an exclusive access. CLREX <c> Table branch byte TBB [<Rn>, <Rm>] Table branch halfword TBH [<Rn>, <Rm>, LSL #1] Return number of leading zeros in register value CLZ.W <Rd>, <Rn>