Commit Graph

341 Commits

Author SHA1 Message Date
Jared Boone
8a69b0523e View::add_children: Use std::list_initializer as argument.
Improvement in code size -- 944 bytes.

Some day I will understand C++11 well enough to do the right thing the first time.
2016-09-05 14:53:04 -07:00
Jared Boone
5d2ad9c1aa SGPIO: Use pin constants when changing output enables. 2016-08-30 21:33:44 -07:00
Jared Boone
00c7cdf027 CPLD: Always clock SGPIO data on external clock rising edge. 2016-08-30 21:30:03 -07:00
Jared Boone
f0c4b0fc98 AIS: Doesn't use RRC filter -- use rect instead. 2016-08-29 20:47:37 -07:00
Jared Boone
e2fe4b65d9 CPLD: Set DECIM1 as input to CPLD.
How did DECIM work before?! Now, decimate is no longer a feature, so this doesn't really matter. But tidying it up anyway.
2016-08-23 10:30:05 -07:00
Jared Boone
f7bfde73b6 FatFs: Enable long file name support.
Lots of re-plumbing to make this work, including a bunch of Unicode stuff now in the binary. Bloat City, I'm sure.

TODO: FatFs using unsigned (uint16_t) for UTF16 representation is kinda inconvenient. Lots of reinterpret_cast<>().
2016-08-21 18:06:39 -07:00
Jared Boone
77016b9a40 Rename CPLD "Q_INVERT" to signal to "INVERT".
Don't expose detail in name about how the task is accomplished.
2016-08-21 11:35:40 -07:00
Jared Boone
b0a3f680e5 CPLD: Remove decimation feature. 2016-08-21 11:31:37 -07:00
Jared Boone
52c089c4df SGPIO: Hi-Z data bus before setting direction pin.
Another tactic to avoid bus contention, however brief.
2016-08-13 16:46:02 -07:00
Jared Boone
62d2ae2336 SGPIO: Change bus direction more deliberately.
There may have been an instant where the CPLD and SGPIO were driving the bus simultaneously, when switching from TX to RX.
2016-08-13 16:42:39 -07:00
Jared Boone
c424bf08f3 Touch: Migrate touch calibration to persistent memory. 2016-07-27 15:30:43 -07:00
Jared Boone
82f6e7c306 Change default frequency when NVRAM is initialized. 2016-07-27 14:17:57 -07:00
Jared Boone
20bcbf511e Move thread_base.hpp from baseband/ to common/.
I want to use it with M0 code as well.
2016-07-26 10:22:10 -07:00
Jared Boone
8b02e40602 Move touch ADC data collection to M0.
...so it continues when M4 is shut down.

It's not as pretty as using DMA, but it's far simpler, even if it involves letting the ADC run continuously and taking the last samples even if not synchronizing to the phase of the sampling of the channels.
2016-07-24 15:31:53 -07:00
Jared Boone
b3f4ea8978 Clean up SharedMemory placement new. 2016-07-24 15:27:05 -07:00
Jared Boone
49d6cda731 Move BasebandConfiguration to receiver_model.hpp.
That's the only place it's being used now -- it's no longer moving between cores.
2016-07-19 17:11:32 -07:00
Jared Boone
74b5571e8b Remove baseband::start()/stop() and related message. 2016-07-19 17:06:22 -07:00
Jared Boone
4b7fa9f411 CPLD: Add XC2C64A method to init from EEPROM contents. 2016-07-18 11:31:21 -07:00
Jared Boone
4cc356f325 JTAG: Code to manage HackRF CPLD interactions. 2016-07-17 15:45:00 -07:00
Jared Boone
71c7f543c5 JTAG: Add TAP state management.
Not all that happy with the implementation, but it's doing the job for now.
2016-07-17 15:44:30 -07:00
Jared Boone
c0f4fbe32d JTAG: Add GPIO definitions for HackRF CPLD. 2016-07-16 14:06:58 -07:00
Jared Boone
22143c9543 JTAG: Remove unused methods. 2016-07-13 11:02:13 -07:00
Jared Boone
18fe30136e JTAG: Move Target interface to separate header. 2016-07-11 09:39:02 -07:00
Jared Boone
6917ffe1e3 JTAG: Clean up definition of Target interface. 2016-07-11 09:16:47 -07:00
Jared Boone
ad4a68f90a CMake: Generate portapack_cpld_data.cpp from SVF via tool. 2016-07-05 12:45:31 -07:00
Jared Boone
3ed1d9e24a CPLD: Method to calculate bitstream CRC32. 2016-07-05 12:06:51 -07:00
Jared Boone
df825807d6 CRC: Rearrange public methods to reduce user error.
If you can access process_bits() without considering RevIn value, you will likely not get the CRC value you're expecting! Put RevIn check where it belongs, in process_bits().
2016-07-05 11:57:57 -07:00
Jared Boone
57293bc5eb Clear application message queue after baseband is shut down. 2016-07-02 16:19:41 -07:00
Jared Boone
eac4cf678a Capture M4 chDbgPanic msg, show in application. 2016-07-02 15:33:03 -07:00
Jared Boone
97ba19af24 Change M4 loader to use image tags.
Also finish moving HackRF binary to tagged image region.
2016-07-01 10:37:22 -07:00
Jared Boone
0e62876578 Add types for tagged data chunks in SPI flash. 2016-07-01 10:32:52 -07:00
Jared Boone
d41c6ee36a Simplify app->baseband message handling.
No need for a FIFO when all messages are intended to be synchronous.
2016-06-24 14:16:45 -07:00
Jared Boone
264c19b312 Rename CaptureThread message, callback method, handle success. 2016-06-21 12:05:55 -07:00
Jared Boone
81d4e59aeb Add CaptureThread success_callback. 2016-06-21 11:53:07 -07:00
Jared Boone
cfaa44b02a Send CaptureThread error into app-local message queue. 2016-06-21 11:04:10 -07:00
Jared Boone
dbe735233a Add app-local MessageQueue. 2016-06-21 10:57:44 -07:00
Jared Boone
7023616808 Move MessageQueue locations in SharedMemory structure. 2016-06-21 10:56:00 -07:00
Jared Boone
9f95eb90a3 Shrink baseband queue size, 2^12 -> 2^11. 2016-06-21 10:55:24 -07:00
Jared Boone
6bd191349a Hide MessageHandlerMap.
Definitely didn't belong in message.hpp, saw no reason to expose it outside translation unit (.cpp file).
2016-06-19 22:56:06 -07:00
Jared Boone
a475daeeea TPMS: Validate checksum for OOK 8k192 Schrader. 2016-06-02 23:09:55 -07:00
Jared Boone
9628815da7 TPMS: Validate checksum for the OOK 8k4 Schrader variant. 2016-06-02 22:22:22 -07:00
Jared Boone
a52d0fbd81 Rename format_manchester/ManchesterFormatted to "[sS]ymbols". 2016-05-30 11:24:59 -07:00
Jared Boone
3d22222689 Extract DecodedSymbol from ManchesterDecoder. 2016-05-30 11:23:13 -07:00
Jared Boone
05b55f2696 TPMS: Extract packet readers. 2016-05-27 13:41:56 -07:00
Jared Boone
04c472e802 Push SignalType inside tpms::Packet. 2016-05-25 17:58:32 -07:00
Jared Boone
ff57b3c8cb Add Color-only constructor to ui::Rectangle widget. 2016-05-25 11:32:06 -07:00
Jared Boone
38b374506e More TPMS variable/enum renaming. 2016-05-23 18:02:25 -07:00
Jared Boone
05df04df7e TPMS: Quick implementation of "flags" column.
For now, shows only for Schrader OOK packets: top (left) nibble is function code, bottom nibble has two-bit checksum.
2016-05-17 14:23:03 -07:00
Jared Boone
40859444fe Update TPMS field handling for Schrader devices.
Thanks to mossmann for discovering these details.
2016-05-17 11:27:19 -07:00
Jared Boone
ad554b28b5 Rename TPMS clock recovery, packet builders for accuracy. 2016-05-17 11:11:30 -07:00
Jared Boone
682a1706a3 Improve File error handling. Massive effects...
API is somewhat stolen from Rust std::fs::File. Static factories didn't work out so well, though. Move semantics made my head explode.
TODO: Still a lot of places where errors aren't handled, but it's an improvement...
2016-05-16 14:01:44 -07:00
Jared Boone
b82eff51dd Refactor of capture buffer management between cores.
Instead of copying data into and out of FIFO, passing buffer pointers between cores that are sized to match preferred/ideal SD card write size.
2016-05-10 14:12:37 -07:00
Jared Boone
dc2944d5e9 Make Widget::screen_rect() const.
Because I can.
2016-05-08 14:59:26 -07:00
Jared Boone
ab73d6155e Improve arrow key next focus algorithm. 2016-05-08 14:59:03 -07:00
Jared Boone
0d6103916d Converge File object with std::fstream. Simplify LogFile.
LogFile no longer watches SD card presence and tries to open/close files dynamically.
2016-04-30 15:09:34 -07:00
Jared Boone
dc8c34487f Speed dropped_percent() common case, ensure dropped>0 returns >0%. 2016-04-27 12:16:37 -07:00
Jared Boone
a72a3489cf Expose percent of data dropped during capture. 2016-04-27 12:04:02 -07:00
Jared Boone
1789868b8a Track bytes from baseband and dropped when entering capture FIFO. 2016-04-27 10:40:50 -07:00
Jared Boone
91ee2dbb67 Move FIFO and write size to CaptureConfig structure.
Now configured from baseband, where write size and appropriate FIFO size is known.
2016-04-26 22:26:30 -07:00
Jared Boone
ed3ac5249f Move MessageQueue::signal into .cpp file. 2016-04-23 22:00:27 -07:00
Jared Boone
d5e21ce972 Use CaptureConfig to share state between cores.
Remove awful FIFO_HACK.
TODO: Lots of repeated code...
TODO: Capture thread is signalled too frequently.
2016-04-23 15:07:44 -07:00
Jared Boone
7436dea51a Add CaptureConfig structure and message. 2016-04-23 14:54:15 -07:00
Jared Boone
27a1423309 De-constexpr a few UI constructors.
Because it was silly.
2016-04-22 11:18:35 -07:00
Jared Boone
59f1a32566 Semi-naive audio recording to SD card. 2016-04-11 10:20:19 -07:00
Jared Boone
c01f2d82e1 Move TPMS taps to dsp_fir_taps.hpp.
Will soon use in proc_record.cpp.
2016-04-11 10:18:31 -07:00
Jared Boone
f76750e55b Add LFSR random number generator.
Used for SD card write/read testing, maybe other stuff eventually?
2016-04-10 16:30:28 -07:00
Jared Boone
38ba02a68f Change File::open to File::open_for_writing.
Not thrilled about the File API right now...
2016-04-10 15:55:01 -07:00
Jared Boone
f8d496d9d1 Remove cpu_clock.* -- unused.
ClockManager does all that stuff.
2016-04-09 21:33:12 -07:00
Jared Boone
b35a8c4501 Add TPMS signal_type. 2016-04-06 17:04:40 -07:00
Jared Boone
635b1fd4c3 Extract TPMS packet stuff to separate files. 2016-04-06 17:01:54 -07:00
Jared Boone
b7c0efbb64 Add ERT commodity type. 2016-04-06 16:16:10 -07:00
Jared Boone
6571ef0c11 Prevent alternate MessageQueue constructors. 2016-02-27 21:20:16 -08:00
Jared Boone
0fae1488c4 Hide most of MessageQueue functions. 2016-02-27 21:19:51 -08:00
Jared Boone
bf348cf30a Move message handling loops to MessageQueue. 2016-02-27 21:07:11 -08:00
Jared Boone
eb294c8e1c Add chDbgPanic for unhandled exceptions. 2016-02-27 12:05:29 -08:00
Jared Boone
36c38e4a24 Quiet narrowing conversion warning. 2016-02-22 14:19:26 -08:00
Jared Boone
19609469a5 Quiet shift-overflow compiler warning. 2016-02-22 14:18:53 -08:00
Jared Boone
925394c54b Bodgy code to write PNG files the size of the LCD screen. 2016-02-19 15:33:27 -08:00
Jared Boone
77eb0c5d24 ILI9341 read_pixels().
Improves on / abstracts prior interface, which just handed back uint16_ts from the LCD's parallel interface.
2016-02-19 15:31:56 -08:00
Jared Boone
bdaa13c103 CRC, Adler32 interfaces accept void* blocks.
...despite my better judgement.
2016-02-19 15:30:35 -08:00
Jared Boone
6d0995e165 Function to read bytes from 16-bit LCD interface.
...begin careful not to overread from the LCD, or overwrite to the buffer.
2016-02-19 15:29:00 -08:00
Jared Boone
1f79c72bf0 Remove irrelevant comment from portapack::io. 2016-02-19 15:28:15 -08:00
Jared Boone
322a15587a Add ColorRGB888 type for data from LCD frame buffer. 2016-02-19 15:27:50 -08:00
Jared Boone
5ed76d6985 Adler32 implementation (for PNG writer). 2016-02-19 14:13:15 -08:00
Jared Boone
daeb542086 Remove constexpr use of std::log2, std::log10.
GCC 4.9 doesn't care for it.
2016-02-19 10:30:26 -08:00
Jared Boone
d6d1f6b8af Missing #include. 2016-02-19 08:57:07 -08:00
Jared Boone
1e0d34c98b CRC internal type more suitable for ARM. 2016-02-18 21:31:51 -08:00
Jared Boone
00fb25f143 CRC class now supports reverse of input/output. 2016-02-18 20:36:32 -08:00
Jared Boone
0681f9c5df Init message queues in M0 event dispatcher. 2016-02-16 11:23:02 -08:00
Jared Boone
ef86848139 Change baseband floats to normalize at +/-1.0. 2016-02-14 12:38:50 -08:00
Jared Boone
64e4cde7f5 fast_pow2() implemented. 2016-02-13 11:18:34 -08:00
Jared Boone
d2531016e5 Expose fast_log2(). 2016-02-13 11:18:15 -08:00
Jared Boone
4321deee1e ChibiOS memory helper functions. 2016-02-12 13:52:22 -08:00
Jared Boone
d125a5c662 Remove "K" parameter from FIFO template. 2016-02-10 10:41:06 -08:00
Jared Boone
dfbcf5bc75 Extract some constexpr math utilities to utility.hpp
...my dumping ground for so many random bits.
2016-02-10 10:15:42 -08:00
Jared Boone
ae93d8ee58 Simplify RSSI/BB DMA, extract to ThreadWait class.
Also saved 688 bytes of code.
2016-02-09 10:41:19 -08:00
Jared Boone
5cd423bb20 Fast log2 implementation.
Big improvement in code size (2034 bytes!). Baseband FFT (idle) thread CPU cut in half.
2016-02-08 12:55:06 -08:00
Jared Boone
cdd15fcf79 Rework complex16_mag_squared_to_dbv_norm() to use log2.
Small code size reduction and improvement in CPU effort.
2016-02-08 12:35:20 -08:00
Jared Boone
3aabd804d3 Remove commented code. 2016-02-07 21:52:36 -08:00
Jared Boone
5a66c68861 Return Widget::children() by reference. 2016-02-07 11:24:25 -08:00