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

Support for the e-link32 #172

Closed
hargoniX opened this issue Mar 8, 2020 · 9 comments
Closed

Support for the e-link32 #172

hargoniX opened this issue Mar 8, 2020 · 9 comments
Assignees
Labels
enhancement New feature or request

Comments

@hargoniX
Copy link
Contributor

hargoniX commented Mar 8, 2020

Is your feature request related to a problem? Please describe.
I can't find any non Windows software that allows me to communicate with the e-link32 on the eval boards for my holtek chips.

Describe the solution you'd like
It would be pretty neat if probe.rs would have support for this debugger and maybe chips of holtek I'm using.

Describe alternatives you've considered
Using Windows and ARM Keil or other Windows tooling holtek provides seems to be the only way.

Additional context
I'd love to implement this myself however as I've never done anything related to this I am a little lost, I couldn't find any documentation etc. related to how the Holtek software actually talks to the e-link probe. If someone could tell me either how I should debug the software under Windows or can point me to some docs I oversaw I'd happily tackle this myself. In case there isn't any documentation I guess reverse engineering what their standalone tools are doing is the best way?

@hargoniX hargoniX added the enhancement New feature or request label Mar 8, 2020
@Yatekii
Copy link
Member

Yatekii commented Mar 8, 2020

It is unlinkely that any of the current maintainers will find time to implement this relatively unknown probe. It is hard enough to handle the three probes we have already :)

If you would like to invest the time and implement a driver I am more than willing to assist you with guidance. The matrix channel is a good place to ask more hands on questions.

Basically you need to implement two traits to make your probe work.
It's for one the DebugProbe trait which is the generic probe control trait and DAPAccess which is the trait that implements the ARM debug interface (DAP).

We would need to put this into the docs somewhere.

Why don't you wanna use a CMSIS-DAP based probe or even an ST-Link/J-Link? They should work with any ARM core. And as I can see on the ARM page there are CMSIS-PACKs for Holtek chips, so I assume that should work :)

@hargoniX
Copy link
Contributor Author

hargoniX commented Mar 8, 2020

It's just that on the dev boards they provide like for example this one there is one of these elink32 probes integrated so I thought it might be nice if you could just use the ones you get when buying the board?

Edit: Also, may I ask which matrix channel/how to get there? Never used matrix before I'm afraid.

@therealprof
Copy link
Contributor

https://matrix.to/#/!BHcierreUuwCMxVqOf:matrix.org?via=matrix.org&via=tchncs.de&via=x0f.org

@Yatekii Don't have we pointers to matrix on the homepage?

@Yatekii
Copy link
Member

Yatekii commented Mar 8, 2020

We do have pointers, also in the readme. Maybe it's not obvius enough? I wanted to add some stuff to the webpage anyways.

@therealprof
Copy link
Contributor

It's quite possible that e-link is just a clone of something like STLink with a different sticker slapped on.

@Tiwalun
Copy link
Member

Tiwalun commented Mar 9, 2020

You could try capturing the USB communication using Wireshark, then it would be easy to check if it's just a clone of a STLink.

@Yatekii
Copy link
Member

Yatekii commented Mar 9, 2020

It is actually a CMSIS-DAP probe. We chatted and figured that. He is trying to make it work now :)

@hargoniX
Copy link
Contributor Author

hargoniX commented Mar 9, 2020

Turns out that in order to read device strings under Fedora you need sudo because of the default SELinux limitations it provides, if i run it with that it reads the string correctly and detects it as a CMSIS-DAP probe, thanks for your help!

@hargoniX hargoniX closed this as completed Mar 9, 2020
@Yatekii
Copy link
Member

Yatekii commented Mar 9, 2020

Hurray glad we were able to resolve this so quickly :)

Tiwalun pushed a commit that referenced this issue Jan 13, 2023
172: Bump anyhow from 1.0.34 to 1.0.37 r=Tiwalun a=dependabot[bot]

Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.34 to 1.0.37.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/anyhow/releases">anyhow's releases</a>.</em></p>
<blockquote>
<h2>1.0.37</h2>
<ul>
<li>Improve compiler diagnostic on calling macro with a temporary value (<a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/133">#133</a>)</li>
</ul>
<h2>1.0.36</h2>
<ul>
<li>Make anyhow::Error ABI compatible with <code>void*</code> for round tripping through a C FFI (<a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/132">#132</a>)</li>
</ul>
<h2>1.0.35</h2>
<ul>
<li>
<p>Support 1-argument use of <code>ensure!</code> (<a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/126">#126</a>)</p>
<pre lang="rust"><code>ensure!(depth &lt;= MAX_DEPTH);
// error msg on a false condition would be &quot;Condition failed: `depth &lt;= MAX_DEPTH`&quot;
</code></pre>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/dtolnay/anyhow/commit/d1ba145c92f8b690c4517f396af2677b08a28288"><code>d1ba145</code></a> Release 1.0.37</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/c1fa2413acb8055a21612dca9e404c86502abfe8"><code>c1fa241</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/133">#133</a> from dtolnay/temp</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/86dd074ea501aaa5592bf247c1aae695bd733b69"><code>86dd074</code></a> Improve error on temp value to point to the correct statement</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/91b970e269fa55c8f02966aac6541f49d922e369"><code>91b970e</code></a> Add ui test of temporary value in anyhow macro</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/f9419cd5a13496112deb0fac5386fc3c9fd5d60f"><code>f9419cd</code></a> Release 1.0.36</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/0650f4322c3534042a9c0bf2084f9d19b49a92b4"><code>0650f43</code></a> Merge pull request 132 from dtolnay/repr</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/3105a739d97042f3f831c24b10e4baab16f819b4"><code>3105a73</code></a> Mark Error repr transparent</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/0a218a84a813375cfb38e0ee5c5f8445afb2765c"><code>0a218a8</code></a> Add test of anyhow::Error in ffi signature</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/2a82468b07751485552a7c1123007ad90e842b24"><code>2a82468</code></a> Release 1.0.35</li>
<li><a href="https://github.com/dtolnay/anyhow/commit/cdfd375b59ddffe734648ac134c2365ad5d327bc"><code>cdfd375</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/130">#130</a> from dtolnay/ensure</li>
<li>Additional commits viewable in <a href="https://github.com/dtolnay/anyhow/compare/1.0.34...1.0.37">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anyhow&package-manager=cargo&previous-version=1.0.34&new-version=1.0.37)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Yatekii pushed a commit that referenced this issue Jan 13, 2023
172: Bump actions-rs/toolchain from 1 to 1.0.7 r=Tiwalun a=dependabot[bot]

Bumps [actions-rs/toolchain](https://github.com/actions-rs/toolchain) from 1 to 1.0.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/actions-rs/toolchain/releases">actions-rs/toolchain's releases</a>.</em></p>
<blockquote>
<h2>v1.0.6</h2>
<p>See Changelog: <a href="https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#106---2020-03-24">https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#106---2020-03-24</a></p>
<h2>v1.0.5</h2>
<p>Changelog: <a href="https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#105---2020-01-26">https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#105---2020-01-26</a></p>
<h2>v1.0.4</h2>
<p>Changelog: <a href="https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#104---2020-01-26">https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#104---2020-01-26</a></p>
<h2>v1.0.3</h2>
<p>Changelog: <a href="https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#103---2019-10-19">https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#103---2019-10-19</a></p>
<h2>v1.0.2</h2>
<p>Changelog: <a href="https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#102---2019-10-14">https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#102---2019-10-14</a></p>
<h2>v1.0.1</h2>
<p>Changelog: <a href="https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#101---2019-10-05">https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md#101---2019-10-05</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/actions-rs/toolchain/blob/master/CHANGELOG.md">actions-rs/toolchain's changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this file.</p>
<p>The format is based on <a href="https://keepachangelog.com/en/1.0.0/">Keep a Changelog</a>,
and this project adheres to <a href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p>
<h2>[1.0.6] - 2020-03-24</h2>
<h3>Added</h3>
<ul>
<li>Pass <code>allow-downgrade</code> flag to <code>rustup</code> if <code>nightly</code> toolchain with components requested</li>
</ul>
<h2>[1.0.5] - 2020-01-26</h2>
<h3>Fixed</h3>
<ul>
<li><code>rustup</code> version parser does not fail Action execution on <code>macOS-latest</code> VM images anymore</li>
</ul>
<h2>[1.0.4] - 2020-01-26</h2>
<h3>Added</h3>
<ul>
<li>Support for the <code>rust-toolchain</code> file: If the toolchain input is not given, we will try and install the version specified in the <code>rust-toolchain</code> file.</li>
<li>Action outputs with <code>rustc</code>, <code>cargo</code> and <code>rustup</code> versions installed</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/actions-rs/toolchain/compare/v1...v1.0.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions-rs/toolchain&package-manager=github_actions&previous-version=1&new-version=1.0.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
burrbull pushed a commit to burrbull/probe-rs that referenced this issue Feb 27, 2023
174: Skip defmt version check r=spookyvision a=Urhengulas

workaround for probe-rs#172 

I started out using `fn std::env::var(...)`, which inspects the env var at runtime, but thought that it makes more sense to check it during compile time using `option_env!`, because this prevents end users from using this and not actually fixing the mismatch.

While on it I added some refactoring. 🙂 

Co-authored-by: Urhengulas <johann.hemmann@code.berlin>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants