mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-10-01 01:26:06 -04:00
Consolidating M4-specific saturation flag code.
This commit is contained in:
parent
b42d3cc9d5
commit
a27489eb21
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#include "baseband_stats_collector.hpp"
|
#include "baseband_stats_collector.hpp"
|
||||||
|
|
||||||
#include "utility_m4.hpp"
|
#include "lpc43xx_cpp.hpp"
|
||||||
|
|
||||||
bool BasebandStatsCollector::process(const buffer_c8_t& buffer) {
|
bool BasebandStatsCollector::process(const buffer_c8_t& buffer) {
|
||||||
samples += buffer.count;
|
samples += buffer.count;
|
||||||
@ -50,8 +50,8 @@ BasebandStatistics BasebandStatsCollector::capture_statistics() {
|
|||||||
statistics.baseband_ticks = (baseband_ticks - last_baseband_ticks);
|
statistics.baseband_ticks = (baseband_ticks - last_baseband_ticks);
|
||||||
last_baseband_ticks = baseband_ticks;
|
last_baseband_ticks = baseband_ticks;
|
||||||
|
|
||||||
statistics.saturation = m4_flag_saturation();
|
statistics.saturation = lpc43xx::m4::flag_saturation();
|
||||||
clear_m4_flag_saturation();
|
lpc43xx::m4::clear_flag_saturation();
|
||||||
|
|
||||||
samples_last_report = samples;
|
samples_last_report = samples;
|
||||||
|
|
||||||
|
@ -30,6 +30,21 @@
|
|||||||
|
|
||||||
namespace lpc43xx {
|
namespace lpc43xx {
|
||||||
|
|
||||||
|
#if defined(LPC43XX_M4)
|
||||||
|
namespace m4 {
|
||||||
|
|
||||||
|
static inline bool flag_saturation() {
|
||||||
|
return __get_APSR() & (1U << 27);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void clear_flag_saturation() {
|
||||||
|
uint32_t flags = 1;
|
||||||
|
__asm volatile ("MSR APSR_nzcvqg, %0" : : "r" (flags));
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* namespace m4 */
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace creg {
|
namespace creg {
|
||||||
|
|
||||||
static_assert(offsetof(LPC_CREG_Type, CREG0) == 0x004, "CREG0 offset wrong");
|
static_assert(offsetof(LPC_CREG_Type, CREG0) == 0x004, "CREG0 offset wrong");
|
||||||
|
@ -26,15 +26,6 @@
|
|||||||
|
|
||||||
#include <hal.h>
|
#include <hal.h>
|
||||||
|
|
||||||
static inline bool m4_flag_saturation() {
|
|
||||||
return __get_APSR() & (1U << 27);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void clear_m4_flag_saturation() {
|
|
||||||
uint32_t flags = 1;
|
|
||||||
__asm volatile ("MSR APSR_nzcvqg, %0" : : "r" (flags));
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline complex32_t multiply_conjugate_s16_s32(const complex16_t::rep_type a, const complex16_t::rep_type b) {
|
static inline complex32_t multiply_conjugate_s16_s32(const complex16_t::rep_type a, const complex16_t::rep_type b) {
|
||||||
// conjugate: conj(a + bj) = a - bj
|
// conjugate: conj(a + bj) = a - bj
|
||||||
// multiply: (a + bj) * (c + dj) = (ac - bd) + (bc + ad)j
|
// multiply: (a + bj) * (c + dj) = (ac - bd) + (bc + ad)j
|
||||||
|
Loading…
Reference in New Issue
Block a user