Commit Graph

207 Commits

Author SHA1 Message Date
Ryan Summers 56bcf1e0aa Adding sampling_timer file 2020-11-11 18:44:28 +01:00
Ryan Summers 3b953e36aa Adding compile-time management of TIM2 channels 2020-11-11 18:42:34 +01:00
Ryan Summers da9ca81856 Reverting changeset 2020-11-11 12:12:19 +01:00
Ryan Summers 3088a002c0 Adding documentation 2020-11-11 12:09:27 +01:00
Ryan Summers aa36446f95 Adding updated docs for adc file 2020-11-11 11:57:14 +01:00
Ryan Summers db3bb511b4 Merge branch 'master' into feature/dma-updates 2020-11-10 16:55:25 +01:00
Ryan Summers f164a1a89e Update PR 2020-11-10 15:31:19 +01:00
Ryan Summers a32ca39ca0 Removing spaces 2020-11-10 15:19:44 +01:00
Ryan Summers 84e31ef036 Fixing directive position 2020-11-10 15:16:37 +01:00
Ryan Summers 7b86a2bc42 Adding comment about deprecation allowance 2020-11-10 15:14:49 +01:00
Ryan Summers c804312e60 Fixing deprecation warnings 2020-11-10 15:13:57 +01:00
Ryan Summers 014137acf0 Updating QSPI frequency 2020-11-09 15:57:58 +01:00
Ryan Summers fca38e5d63 Adding support for hardware IO_update 2020-11-09 15:16:44 +01:00
Ryan Summers c97e4d9d20 Fixing merge issues 2020-11-09 12:33:18 +01:00
Ryan Summers 7e1a58f1f0 Merge branch 'feature/dma-updates' into feature/qspi-stream 2020-11-09 12:32:32 +01:00
Ryan Summers 8d807fa09b Adding WIP 2020-11-09 12:30:02 +01:00
Ryan Summers 28cb3906ac Adding WIP HRTimer 2020-11-07 11:01:48 +01:00
Ryan Summers bab9fbf5ac Merge branch 'master' into rs/hal-update 2020-11-05 08:09:45 +01:00
Ryan Summers 5cc21cfde8 Combining ADC + DAC ISRs 2020-11-03 16:09:00 +01:00
Ryan Summers e95cad5bde Adding WIP updates 2020-11-03 10:52:37 +01:00
Ryan Summers 4e5459433e Formatting 2020-11-03 09:41:45 +01:00
Ryan Summers adaca88a50 Adding ADC/DAC modules 2020-11-03 09:41:14 +01:00
Ryan Summers 20e9b6543c Adding WIP updates to using DMA 2020-11-03 09:36:03 +01:00
Niklas Kuhrmeyer 2f5d26aeaa decreased routes_storage 2020-10-30 13:33:59 +01:00
Niklas Kuhrmeyer 32d5e4dfe1 format 2020-10-30 13:32:47 +01:00
Niklas Kuhrmeyer dfe3ac877a added gateway 2020-10-30 12:16:28 +01:00
Ryan Summers f56487401c Adding updates for PHY support 2020-10-28 16:14:48 +01:00
Ryan Summers 11ff93e6f0 Fixing diff 2020-10-28 15:57:14 +01:00
Ryan Summers e36b853dc8 Renaming clocks to ccdr 2020-10-28 15:51:08 +01:00
Ryan Summers b4eeeb2042 Reverting unneeded changes 2020-10-28 15:44:52 +01:00
Ryan Summers c058d4bcde Adding updates for 0.8.0 of the HAL 2020-10-28 15:41:27 +01:00
Ryan Summers 17c8e4d2e1 Updating to new HAL 2020-10-26 16:58:29 +01:00
Ryan Summers 071ccd17dc Adding WIP experimental code 2020-10-22 16:16:38 +02:00
Ryan Summers db182b923d Adding WIP QSPI streaming 2020-10-21 10:17:22 +02:00
Ryan Summers dac6f73d5e WIP updates 2020-10-19 17:12:02 +02:00
Harry Ho a979bf94dc update syntax for taking core periphs (required since rtic v0.5.5) 2020-09-16 14:25:36 +08:00
Robert Jördens d6de4b7028 fmt 2020-06-23 14:55:59 +02:00
Robert Jördens 5c4dec0870 dac clr/ldac: unwrap 2020-06-23 14:16:33 +02:00
Robert Jördens c326623818 dacs: clr_n high, ldac_n low 2020-06-23 14:13:55 +02:00
Robert Jördens 0a4112eb02 spi nss: very high speed 2020-06-22 22:55:18 +02:00
Ryan Summers 093dca5928 Updating stabilizer devices to utilize 0-based indexing 2020-06-22 08:31:09 +02:00
Ryan Summers a992d20414 Updating comment about debugging 2020-06-21 13:36:45 +02:00
Ryan Summers 7e279ed87c Re-enabling the HSE 2020-06-21 14:39:23 +02:00
Ryan Summers 78c9f6e686 Running rustfmt 2020-06-21 14:30:49 +02:00
Ryan Summers c6859d956e Allowing pounder to not be present 2020-06-20 16:43:07 +02:00
Robert Jördens f14f0e2ed1 style: implement a couple clippy suggestions [nfc] 2020-06-17 14:57:09 +02:00
Robert Jördens f70612f1be rtfm: migrate to rtic 2020-06-17 12:20:45 +02:00
Robert Jördens 54f51f9484 cargo fmt --all 2020-06-16 16:56:30 +02:00
Robert Jördens 09298bd534 structure: move stabilizer back to top, drop submodules 2020-06-16 16:56:30 +02:00
Ryan Summers 4dcf2b57bd Updating project structure 2020-06-08 09:36:28 +02:00
Ryan Summers ade06cbcb8 Updating AD9959 api 2020-06-04 16:56:04 +02:00
Ryan Summers beecbe3efc Refactoring AFE code 2020-06-03 17:36:43 +02:00
Ryan Summers b39de7f414 Adding support for QSPI operating continuously in 4-bit mode 2020-06-03 15:44:34 +02:00
Ryan Summers 13cd0ad636 Updating code after review feedback 2020-06-03 10:36:35 +02:00
Ryan Summers 6792ab5469 Adding input power measurement support 2020-04-29 13:00:29 +02:00
Ryan Summers 6f7bb0569c Adding stabilizer AFE gain amplifier controls 2020-04-29 11:59:04 +02:00
Ryan Summers 41f4960b93 Refactoring server into separate file 2020-04-28 19:26:43 +02:00
Ryan Summers b49596c96c Adding JSON API 2020-04-28 19:15:00 +02:00
Ryan Summers abf22676ce Adding refactor to support pounder hardware abstractions 2020-04-28 19:07:19 +02:00
Ryan Summers 87858a6e0a Fixing changes 2020-04-22 15:59:08 +02:00
Ryan Summers c6eb4d1757 Adding functional baseline HAL conversion 2020-04-22 15:50:07 +02:00
Ryan Summers 3962f7eb68 Adding WIP updates to SPI functionality 2020-04-22 13:36:51 +02:00
Ryan Summers d700935246 Adding WIP updates to HAL API 2020-04-21 19:02:52 +02:00
Ryan Summers 820a37a625 Refactoring branches 2020-04-19 13:37:03 +02:00
Ryan Summers ce9ae48f2a Adding WIP update to use HAL 2020-04-18 10:54:55 +02:00
Robert Jördens 2001149eda fmt 2020-02-14 15:06:50 +01:00
Robert Jördens 75eb4954b1 board: dma documentation 2020-02-14 12:26:16 +01:00
Robert Jördens 8b26996ecf board: dma.st.ndtr.ndt.bits is safe 2020-02-14 09:44:09 +00:00
Robert Jördens 57c9f90f69 board: fix unicode 2019-11-24 15:11:53 +01:00
Robert Jördens b34fdf7c48 rustfmt: run 2019-11-24 15:10:01 +01:00
Robert Jördens 8c2c0a2027 clippy: allow missing safety doc (rtfm) 2019-11-24 15:04:29 +01:00
Robert Jördens bda0ca26fb i2c/eeprom: lint 2019-11-24 14:55:20 +01:00
bors[bot] d2f8b60c27
Merge #65
65: Tim2 late enable r=jordens a=jordens

does this work for you @cjbe?

bors r+

Co-authored-by: Robert Jördens <rj@quartiq.de>
2019-11-24 13:33:50 +00:00
Robert Jördens 1140b4fb76 board: enable TIM2 late
This was triggered by moving log_init and adding i2c_init on top of
the existing ethernet setup/init after the timer setup and enable.
Thanks @cjbe for debugging.

Also move the RCC peripheral enable calls out of i2c and eth setup.

close #55
supersedes #62
2019-11-24 14:26:27 +01:00
bors[bot] 3cf4f2690c
Merge #64
64: boards.rs: dos2unix r=jordens a=jordens

bors r+

@cjbe heads up

Co-authored-by: Robert Jördens <rj@quartiq.de>
2019-11-24 13:25:08 +00:00
Robert Jördens 8e84e61ff3 boards.rs: dos2unix 2019-11-24 14:15:11 +01:00
Robert Jördens bf65b5f14a default to k_p=1 on boot 2019-11-24 13:10:01 +00:00
Chris Ballance ab1735950b fix memory safety issue in ethernet interface (closes #33)
The CPU is allowed to access normal memory writes out-of-order. Here
the write to the OWN flag in the DMA descriptor (normal memory) was
placed after the DMA tail pointer advance (in device memory, so not
reorderable). This meant the ethernet DMA engine stalled as it saw
a descriptor it did not own, and only restarted and sent the packet
when the next packet was released.

This fix will work as long as the CPU data cache is disabled. If we
want to enable the cache, the simplest method would be to mark SRAM3
as uncacheable via the MPU.
2019-11-16 03:25:42 +00:00
Chris Ballance d7f46c1f12 factor CPU and board-specific initialisation out of main (NFC) 2019-11-13 22:13:04 +00:00
David Nadlinger 2297286360 Fix TCP command interface rx buffer wrapping
Previously, if a message spanned the end of the
receive ring buffer, the last byte in the buffer
would be missing from the to-be-decoded message,
leading to a parse error or panic.

With this commit, >3M commands were exchanged
over one socket without further issues.
2019-11-13 01:50:18 +00:00
bors[bot] 39cb1afcfd
Merge #48
48: remove unused code, deny warnings r=jordens a=jordens

bors r+

Co-authored-by: Robert Jördens <rj@quartiq.de>
2019-11-11 11:20:53 +00:00
Robert Jördens 0b4f7c9201 remove unused code, deny warnings 2019-11-11 12:04:50 +01:00
Robert Jördens 65cf0c1594 rcc: pac 0.9 renames 2019-11-11 11:46:07 +01:00
Robert Jördens 17012621dd use stable rust (1.38.0) 2019-10-22 13:43:49 +00:00
Sebastien Bourdeauducq 80052f089b fix Unix permissions 2019-09-13 13:52:24 +08:00
Chris Ballance 1f1e588744 fix system time counter
The CYCCNT module used to calculate the system
time counts every processor clock cycle =
400 MHz.
2019-09-12 00:35:00 +01:00
bors[bot] 7f295285da
Merge #28 #30
28: Read MAC address from EEPROM r=jordens a=cjbe

Try and read the unique MAC address from EEPROM.
If the EEPROM can not be read (e.g. on the unpatched hardware version 1.0 where the EEPROM is unpowered) a hardcoded default of 10:E2:D5:00:03:00 is used.

The MAC address found / used is logged. At the moment the only way of accessing this log is via semihosting.

Closes #23 

30: build(deps): bump serde from 1.0.99 to 1.0.100 r=jordens a=dependabot-preview[bot]

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.99 to 1.0.100.
<details>
<summary>Release notes</summary>

*Sourced from [serde's releases](https://github.com/serde-rs/serde/releases).*

> ## v1.0.100
> - Provide `serde::ser::StdError` and `serde:🇩🇪:StdError` which are either a re-export of `std::error::Error` (if Serde's "std" feature is enabled) or a new identical trait (otherwise).
> 
>     ```rust
>     #[cfg(feature = "std")]
>     pub use std::error::Error as StdError;
> 
>     #[cfg(not(feature = "std"))]
>     pub trait StdError: Debug + Display {
>         fn source(&self) -> Option<&(StdError + 'static)> { None }
>     }
>     ```
> 
>     Serde's error traits `serde::ser::Error` and `serde:🇩🇪:Error` require `std::error::Error` as a supertrait, but only when Serde is built with "std" enabled. Data formats that don't care about no\_std support should generally provide their error types with a `std::error::Error` impl directly:
> 
>     ```rust
>     #[derive(Debug)]
>     struct MySerError {...}
> 
>     impl serde::ser::Error for MySerError {...}
> 
>     impl std::fmt::Display for MySerError {...}
> 
>     // We don't support no_std!
>     impl std::error::Error for MySerError {}
>     ```
> 
>     Data formats that *do* support no\_std may either have a "std" feature of their own as has been required in the past:
> 
>     ```toml
>     [features]
>     std = ["serde/std"]
>     ```
> 
>     ```rust
>     #[cfg(feature = "std")]
>     impl std::error::Error for MySerError {}
>     ```
> 
>     ... or else now may provide the std Error impl unconditionally via Serde's re-export:
> 
>     ```rust
>     impl serde::ser::StdError for MySerError {}
>     ```
</details>
<details>
<summary>Commits</summary>

- [`b6a77c4`](b6a77c4413) Release 1.0.100
- [`3343885`](33438850a6) Merge pull request [#1620](https://github-redirect.dependabot.com/serde-rs/serde/issues/1620) from dtolnay/error
- [`c083cfd`](c083cfd65e) Export std error type so downstream doesn't need "std" feature
- [`4cea81f`](4cea81f93f) Merge pull request [#1615](https://github-redirect.dependabot.com/serde-rs/serde/issues/1615) from jamesmunns/patch-1
- [`2d36be7`](2d36be753a) Add Postcard to the list of Serde Data Formats
- [`738d29e`](738d29eaa9) Update serde_derive_internals to syn 1.0
- [`b536fb6`](b536fb67a4) Merge pull request [#1604](https://github-redirect.dependabot.com/serde-rs/serde/issues/1604) from UnHumbleBen/patch-1
- [`b10c23a`](b10c23a950) Fixed a typo
- [`85a5cf7`](85a5cf7cb1) Document serde_derive minimum rustc
- See full diff in [compare view](https://github.com/serde-rs/serde/compare/v1.0.99...v1.0.100)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.99&new-version=1.0.100)](https://dependabot.com/compatibility-score.html?dependency-name=serde&package-manager=cargo&previous-version=1.0.99&new-version=1.0.100)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>

Co-authored-by: Chris Ballance <chris.ballance@physics.ox.ac.uk>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2019-09-11 14:18:18 +00:00
Robert Jördens fc93de432d enable cycle counter
c.f. japaric/cortex-m-rtfm#184

Signed-off-by: Robert Jördens <rj@quartiq.de>
2019-09-11 15:35:06 +02:00
Chris Ballance 30faa5b703 read MAC address from EEPROM 2019-09-08 16:02:09 +01:00
Chris Ballance 12b06a0fa9 add I2C and 24xx EEPROM driver 2019-09-05 12:45:57 +01:00
Robert Jördens ba5634fb31 smoltcp: bump 2019-08-27 13:19:03 +00:00
Robert Jördens 1405e62682 rtfm: 0.5 beta 2019-08-27 13:19:03 +00:00
Robert Jördens 61250a3e90 cargo: bump stm32h7, misc 2019-07-29 08:34:46 +00:00
Robert Jördens dd981ed850 panic: abort, not halt 2019-06-10 00:29:20 +02:00
Robert Jördens 9b6ef68eac fix panic handler 2019-06-07 14:28:22 +00:00
Robert Jördens 8ee0950005 panic: turn red leds on 2019-06-07 11:26:24 +02:00
Robert Jördens 5204a3169b gpio: use odr variants 2019-06-04 09:26:28 +00:00
Robert Jördens a8e1740759 parametrize poll return 2019-06-03 17:08:21 +00:00
Robert Jördens ee15c27dd9 make json poll generic 2019-06-03 15:54:35 +00:00
Robert Jördens 6c973038b4 rtfm: command port 2019-06-03 15:06:11 +00:00