I'm fond of the oreilly book "programming rust". I think the way It explains the concepts can be very useful for someone used to C. It complements very well the Rust book too, which is a must read IMHO.
Apart from the official resources in https://www.rust-lang.org/learn which are the bread and butter, here you have a list of rust books in https://github.com/sger/RustBooks
I don't even know for sure myself. This might shed some light though: Deref coercions. I on't know if it's all there is to it.
Basically, you don't need to dereference on method calls thanks to the Deref trait. Here is an exemple using the method version of +=
(which should compile):
use std::ops::AddAssign; for j in a.iter_mut() { j.add_assign(1); }
If you've got more questions and my answers aren't satisfying or not complete enough, you could check out the irc channel for beginners. I can't vouch for it because I've never used it, but I've seen alot of people speaking positively about it. This subreddit is unfortunately not very lively.
You should be able to get required bits including the linker from here. (I haven't tried this - I have a Visual Studio installation which works also but is way larger.) I think the bit you need is "Build Tools for Visual Studio".
I hate doing any code development on Windows. If I were you, I'd install Oracle VirtualBox and use a linux distro like Ubuntu.
HOWEVER,
Do as you wish.
thank you!, I know the idea of the K&R books, but the unix one what I'll gain after reading this book, is it only about Unix OS or programming in general and how this stuff works, sorry I forget to link the book is it the same of this book
https://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X
Structured Computer Organization and Modern Operating Systems by Andrew Tanenbaum will give you a decent understanding of how memory works on modern computers (more specific than "it's just an huge array of bytes").
Here's my solution for 328. Odd Even Linked List.
Let me know if you have questions.
Interesting, sorry you had that experience. Rust is usually pretty good! The next place I would recommend is the IRC #rust-beginners channel actually.
If you're not familiar with IRC, go to https://www.rust-lang.org/community, and scroll down a little bit. There is a Discord, but I never really used it. Click IRC, select a username, then when you see a chat window type /join #rust-beginners
. Lots of good people there.
I'd say C++ as it's used in the traditional systems programming space and also for WebAssembly (for example, see Figma).
I would imagine there will be more jobs in those areas than in embedded unless the Internet of Things etc. really takes off or something.
I think C++ is popular in the embedded space too, no? Albeit perhaps not as popular as C.
In embedded, you really need to be able to see what's happening on the hardware to properly debug, otherwise it's easy to get stuck like that.
Spend $9 on something like this; it will let you look at up to 8 digital channels at 24MHz (48MHz with open source firmware with PulseView in Linux).
In your code, I don't see you setting the MCLK frequency anywhere. I've never used I2S or NRF52, but I'm pretty experienced with other protocols and processors, and I would expect you to have to set the frequency and maybe other settings somewhere using other functions from the HAL I2S documentation.
Those are both very good books, but I don't think so, not quite.
Maybe I'm very stupid but most of the rust specific documentation I read, I found it too dense and theoretical for me. C is a very easy language (I mean to learn and understand, not so easy if you are debugging large projects. As you know Java you won't find it difficult at all), and the learning resources are much better.
Computer Systems: A Programmer's Perspective is the main book I worked through, I felt like I learnt a lot.