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

Stm32duino changes #57

Conversation

matthijskooijman
Copy link

While developing the STM32LoRaWAN Arduino library, which includes a part of the code from this repository, I made a couple of small changes to it, to fix warnings, documentation and ease debugging.

I've included these changes in this pull request. They are essentially three independent changes, put into separate commits. If needed, I can split them out into separate pull requests, but I thought it might be better to first show these and let you consider if you want to include any or all of them at all before I go to that additional effort.

Contributor License Agreement (CLA)

Note that I am not signing the CLA for this contribution, since this code was written as part of an assignment for ST (point of contact is Laurent Meunier), so copyright resides with ST already, not with me. I'm not sure if ST should be signing a corporate CLA, if no CLA is needed or I should get explicit permission to submit this under an individual CLA perhaps?

It seems the comment for GetDevAddress was copied from GetUniqueId, but
not changend sufficiently to be correct.
These warnings are caused because frequencies are stored as `uint32_t`,
which is `unsigned long`, while the printf format expects `int`. In
practice, this does not actually cause problems, since on STM32 gcc
`long` and `int` are both 32-bits and frequencies are never large enough
to cause signed vs unsigned ambiguity.

Since printf has no format specifiers for e.g. uint32_t (libc does have
some macros for this, but those really hurt readability), this is tricky
to fix in a portable way (other architectures or compilers might have
`uint32_t` equal to `unsigned int` instead of `unsigned long`), this fix
just casts the frequency to `unsigned` before passing it to printf (and
for good measure, also convert the specifier from `%d` to `%u`). This
does mean this printing will break if `int` is not at least 32-bits
(e.g. on AVR), but given the scope of this library, that should be
acceptable.
This adds some more details about RX and TX bytes and TX config. There
is also some code for RX config, but to minimize the impact on RX
timing, that is commented out.
@ST-dot-com
Copy link

This pull request has been refused, the Contribution License Agreement must be signed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants