Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cpu/stm32: FMC used for low-level LCD parallel interface #19943

Merged
merged 5 commits into from Oct 16, 2023

Conversation

gschorcht
Copy link
Contributor

Contribution description

This PR provides the implementation of the LCD low-level MCU 8080 parallel interface using the FMC peripheral.

Testing procedure

BOARD=stm32f723e-disco make -C tests/drivers/st77xx flash

and

BOARD=stm32l496g-disco make -C tests/drivers/st77xx flash

should work on top of PR #19941. Drawing operations should be much faster.

Issues/PRs references

Depends on PR #19941

@github-actions github-actions bot added Platform: ARM Platform: This PR/issue effects ARM-based platforms Area: tests Area: tests and testing framework Area: boards Area: Board ports Area: cpu Area: CPU/MCU ports Area: Kconfig Area: Kconfig integration labels Sep 23, 2023
@gschorcht gschorcht added State: waiting for other PR State: The PR requires another PR to be merged first Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation labels Sep 23, 2023
bors bot added a commit that referenced this pull request Oct 5, 2023
19941: drivers/lcd: add MCU-driven low-level parallel interface r=benpicco a=gschorcht

### Contribution description

The PR extends the LCD driver by a low-level interface for MCU-driven implementations of the MCU 8080 16-/8-bit parallel interface, allowing the MCU to use special peripherals for the interface, such as the FMC for STM32 MCUs, which is significantly faster than the integrated GPIO-driven parallel interface implementation of the LCD driver.

### Testing procedure

~Once PR #19938 and PR #19939 are merged, a PRs for these board can be pushed that allow to test this PR.~

Use either PR #19943 or PR #19944 on top of this PR to test, e.g. with PR #19943:
```
BOARD=stm32f723e-disco make -j8 -C tests/drivers/st77xx flash
```

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
@gschorcht gschorcht force-pushed the cpu/stm32/lcd_parallel_ll_mcu branch from 63d6a35 to 23bea86 Compare October 5, 2023 16:35
@gschorcht gschorcht added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed State: waiting for other PR State: The PR requires another PR to be merged first labels Oct 5, 2023
@riot-ci
Copy link

riot-ci commented Oct 5, 2023

Murdock results

✔️ PASSED

c548efd tests/drivers/st77xx: blacklist nucleo-l031k6

Success Failures Total Runtime
134568 0 134568 04h:20m:39s

Artifacts

Copy link
Contributor

@aabadie aabadie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found a couple of typos but otherwise that looks good. And most important I tested this PR with success on the stm32f723e-disco.

You can squash the minor comments directly and merge when ready.

ACK

@gschorcht gschorcht force-pushed the cpu/stm32/lcd_parallel_ll_mcu branch from 23bea86 to 17a4a79 Compare October 6, 2023 11:57
@gschorcht
Copy link
Contributor Author

You can squash the minor comments directly and merge when ready.

ACK

Thanks for reviewing and testing. I squashed it. I don't know whether we can merge the PR due the soft freeze. On the other hand its impact is quite low.

@aabadie
Copy link
Contributor

aabadie commented Oct 6, 2023

I don't know whether we can merge the PR due the soft freeze. On the other hand its impact is quite low.

IMHO this is fine. It's a new feature that extends (and improves) something that was added during this release cycle.

@aabadie
Copy link
Contributor

aabadie commented Oct 6, 2023

bors merge

bors bot added a commit that referenced this pull request Oct 6, 2023
19943: cpu/stm32: FMC used for low-level LCD parallel interface r=aabadie a=gschorcht

### Contribution description

This PR provides the implementation of the LCD low-level MCU 8080 parallel interface using the FMC peripheral.

### Testing procedure

```
BOARD=stm32f723e-disco make -C tests/drivers/st77xx flash
```
and
```
BOARD=stm32l496g-disco make -C tests/drivers/st77xx flash
```
should work on top of PR #19941. Drawing operations should be much faster.

### Issues/PRs references

Depends on PR #19941


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
@aabadie aabadie added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Oct 13, 2023
@aabadie
Copy link
Contributor

aabadie commented Oct 13, 2023

bors merge

bors bot added a commit that referenced this pull request Oct 13, 2023
19943: cpu/stm32: FMC used for low-level LCD parallel interface r=aabadie a=gschorcht

### Contribution description

This PR provides the implementation of the LCD low-level MCU 8080 parallel interface using the FMC peripheral.

### Testing procedure

```
BOARD=stm32f723e-disco make -C tests/drivers/st77xx flash
```
and
```
BOARD=stm32l496g-disco make -C tests/drivers/st77xx flash
```
should work on top of PR #19941. Drawing operations should be much faster.

### Issues/PRs references

Depends on PR #19941


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
@bors
Copy link
Contributor

bors bot commented Oct 13, 2023

Build failed:

@gschorcht
Copy link
Contributor Author

Hm, adding the MCU low-level interface seems to increase the ROM 🤔

@gschorcht
Copy link
Contributor Author

gschorcht commented Oct 13, 2023

Hm, adding the MCU low-level interface seems to increase the ROM 🤔

I don't really get it, if lcd_parallel_ll_mcu is not used, there should be no additional code. It's probably caused by the additional benchmark test in this PR.

@gschorcht
Copy link
Contributor Author

Ok, I blacklisted the nucleo-l031k6 but I don't know what other boards might need to be added to the blacklist.

@gschorcht gschorcht added CI: full build disable CI build filter CI: no fast fail don't abort PR build after first error CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Oct 15, 2023
@gschorcht
Copy link
Contributor Author

gschorcht commented Oct 15, 2023

@MrKevinWeiss @aabadie Full compilation was successful after blacklisting this one board. Do we want to merge it as part of hard feature freeze?

@aabadie
Copy link
Contributor

aabadie commented Oct 15, 2023

Do we wan't to merge it as part of hard feature freeze?

I'm fine with that but better wait for the release manager opinion.

@MrKevinWeiss
Copy link
Contributor

We will put it in after the hard feature freeze... so now.

@MrKevinWeiss
Copy link
Contributor

bors merge

bors bot added a commit that referenced this pull request Oct 16, 2023
19943: cpu/stm32: FMC used for low-level LCD parallel interface r=MrKevinWeiss a=gschorcht

### Contribution description

This PR provides the implementation of the LCD low-level MCU 8080 parallel interface using the FMC peripheral.

### Testing procedure

```
BOARD=stm32f723e-disco make -C tests/drivers/st77xx flash
```
and
```
BOARD=stm32l496g-disco make -C tests/drivers/st77xx flash
```
should work on top of PR #19941. Drawing operations should be much faster.

### Issues/PRs references

Depends on PR #19941


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
@bors
Copy link
Contributor

bors bot commented Oct 16, 2023

Build failed:

  • static-tests

@maribu
Copy link
Member

maribu commented Oct 16, 2023

bors cancel

I stopped the Murdock run, since this failed already due to static tests not passing (codespell on bors got updated). But when added to a merge train together with #19978, it might pass :)

@maribu
Copy link
Member

maribu commented Oct 16, 2023

bors merge

@bors
Copy link
Contributor

bors bot commented Oct 16, 2023

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot merged commit 554efb7 into RIOT-OS:master Oct 16, 2023
29 checks passed
@gschorcht
Copy link
Contributor Author

Thanks for reviewing and merging 😄

@gschorcht gschorcht deleted the cpu/stm32/lcd_parallel_ll_mcu branch December 6, 2023 07:00
@MrKevinWeiss MrKevinWeiss added this to the Release 2024.01 milestone Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: boards Area: Board ports Area: cpu Area: CPU/MCU ports Area: Kconfig Area: Kconfig integration Area: tests Area: tests and testing framework CI: full build disable CI build filter CI: no fast fail don't abort PR build after first error CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: ARM Platform: This PR/issue effects ARM-based platforms Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants