Difference between revisions of "Microcontrollers"
m (noting messages from invocation of 'west' to build Zephyr hello-world targeting Sparkfun Thing Plus.) |
m (adding notes on search for twice mention 'ncs' software development kit.) |
||
Line 179: | Line 179: | ||
</pre> | </pre> | ||
+ | <!-- comment --> | ||
+ | |||
+ | === [[#top|^]] Nordic ncs - nRF Connect Software development kit === | ||
+ | |||
+ | Looking further for Sparkfun's named or implied example code projects for Sparkfun's nRF9160 Thing Plus: | ||
+ | |||
+ | * https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html | ||
<!-- comment --> | <!-- comment --> | ||
+ | |||
+ | * | ||
== [[#top|^]] Microcontroller Qualities and Considerations == | == [[#top|^]] Microcontroller Qualities and Considerations == |
Revision as of 19:24, 2 August 2021
2021-07-09 Friday
Notes On Microcontrollers </center>
Contents
^ Manufacturers of Microcontrollers
Manufacturers visited:
Not yet visited:
- Cypress Semiconductor
- Renesas of Japan
- Silabs
- Dialog
- Qualcomm
^ NordicSemi
An nRF9160 development kit:
Notes on building, flashing to board, and testing example vRF9160 projects and demos:
^ nRF9160 Getting Started Pages
2021-07-20 Tuesday Searching at NordicSemi.com specifically for example code for the nRF9160:
The most important information for firmware starting works at this link for nRF9160 SDK. Note that there is mention of Zephyr RTOS integration:
Hmm, what we thought was a code bundle, code examples has only pre-built binaries. This developers' forum post spells out in detail what was available -- three demos only -- in 2019. See the replies from Nordic's engineer Oyvind:
2021-07-25
This may be the best "getting started" page at Nordic:
^ Hard to locate nRF9160 DK schematic!
A page at Nordicsemi which links to schematics in a larger downloadable file, or so claimed:
Another link seemingly close to the schematic but not getting us there:
- https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf91%2Fstruct%2Fnrf91.html
- https://infocenter.nordicsemi.com/pdf/nRF9160_DK_HW_User_Guide_v1.0.pdf
^ nRF9160 SDK supported boards
nRF9160 Development Kit (DK) boards:
- https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/boards/arm/nrf9160dk_nrf52840/doc/index.html
- https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/boards/arm/nrf9160dk_nrf9160/doc/index.html
Smaller dev board from Sparkfun, Thingy:91 . . .
-
Nordic web site pages related to Thingy:91:
- https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf9160%2FnRF9160_html5_keyfeatures.html nRF9160 key features
- https://infocenter.nordicsemi.com/index.jsp?topic=%2Fref_at_commands%2FREF%2Fat_commands%2Fintro.html LTE modem AT command reference
- https://www.nordicsemi.com/Products/Development-hardware/Nordic-Thingy-91/Download#infotabs Thingy:91 downloadable resources, including schematic
^ nRF9160 Thing Plus by Sparkfun
Some notes on Sparkfun development board named nRF9160 Thing Plus</b>:
How to configure and drive UART on nRF9160:
^ ARM Cortex-M33 CMSIS
ARM Cortex-M33 hardware abstraction layer and CMSIS details here:
- https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf9160%2Fcpu.html
- https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf9160%2Fmemory.html&cp=2_0_0_3_1_0&anchor=memorymap
Explore and download CMSIS from Github:
- https://developer.arm.com/tools-and-software/embedded/cmsis
- https://github.com/ARM-software/CMSIS_5
- https://github.com/ARM-software/CMSIS_5/releases/tag/5.8.0
^ Sparkfun Thing Plus example code and tools
Working with Sparkfun nRF9160 based Thing Plus, Sparkfun's following page instructs how to install newtmgr
:
Installing examples and needed toolchain pieces on Linux hosts:
When attached via USB-C cable, Sparkfun's Thing Plus appears this way in an `lsusb` listing:
Bus 002 Device 005: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Back to Nordic example code, the nRF9160 Thing Plus is a supported board there:
Given this tie in with Nordic nRF9160 SDK which appears to be part of Zephyr project example codes, the two builds we're trying to achieve so far from Nordic SDK / Zephyr include:
west build -b nrf9160dk_nrf9160@1.0.0 ./samples/basic/blinky west build -b sparkfun_thing_plus_nrf9160 samples/hello_world
Note also if we change working directories into a particular example code we then omit the final argument, the relative path to an example code in the above snippet here. A successful build of 'hello-world' gives these messages:
ted@localhost:~/projects/nordicsemi$ date Mon 02 Aug 2021 06:33:26 AM PDT ted@localhost:~/zephyrproject/zephyr/samples/hello_world$ ls CMakeLists.txt prj.conf README.rst sample.yaml src ted@localhost:~/zephyrproject/zephyr/samples/hello_world$ west build -b sparkfun_thing_plus_nrf9160 -- west build: generating a build system Including boilerplate (Zephyr base): /home/ted/zephyrproject/zephyr/cmake/app/boilerplate.cmake -- Application: /home/ted/zephyrproject/zephyr/samples/hello_world -- Zephyr version: 2.6.99 (/home/ted/zephyrproject/zephyr), build: zephyr-v2.6.0-1460-g17d2e9d084b2 -- Found Python3: /usr/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter -- Found west (found suitable version "0.11.0", minimum required is "0.7.1") -- Board: sparkfun_thing_plus_nrf9160 -- Cache files will be written to: /home/ted/.cache/zephyr -- Using toolchain: zephyr 0.12.4 (/opt/zephyr-sdk-0.12.4) -- Found dtc: /opt/zephyr-sdk-0.12.4/sysroots/x86_64-pokysdk-linux/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6") -- Found BOARD.dts: /home/ted/zephyrproject/zephyr/boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160.dts sparkfun_thing_plus_nrf9160.dts.pre.tmp:58.42-70.3: Warning (unique_unit_address_if_enabled): /soc/peripheral@50000000/flash-controller@39000: duplicate unit-address (also used in node /soc/peripheral@50000000/kmu@39000) sparkfun_thing_plus_nrf9160.dts.pre.tmp:310.19-316.3: Warning (unique_unit_address_if_enabled): /soc/peripheral@50000000/clock@5000: duplicate unit-address (also used in node /soc/peripheral@50000000/power@5000) -- Generated zephyr.dts: /home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/zephyr.dts -- Generated devicetree_unfixed.h: /home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/include/generated/devicetree_unfixed.h -- Generated device_extern.h: /home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/include/generated/device_extern.h Parsing /home/ted/zephyrproject/zephyr/Kconfig Loaded configuration '/home/ted/zephyrproject/zephyr/boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160_defconfig' Merged configuration '/home/ted/zephyrproject/zephyr/samples/hello_world/prj.conf' Configuration saved to '/home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/.config' Kconfig header saved to '/home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/include/generated/autoconf.h' -- The C compiler identification is GNU 10.2.0 -- The CXX compiler identification is GNU 10.2.0 -- The ASM compiler identification is GNU -- Found assembler: /opt/zephyr-sdk-0.12.4/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -- Configuring done -- Generating done -- Build files have been written to: /home/ted/zephyrproject/zephyr/samples/hello_world/build -- west build: building application [1/145] Preparing syscall dependency handling [138/145] Linking C executable zephyr/zephyr_prebuilt.elf [145/145] Linking C executable zephyr/zephyr.elf Memory region Used Size Region Size %age Used FLASH: 16492 B 1 MB 1.57% SRAM: 4072 B 64 KB 6.21% IDT_LIST: 0 GB 2 KB 0.00% ted@localhost:~/zephyrproject/zephyr/samples/hello_world$
^ Nordic ncs - nRF Connect Software development kit
Looking further for Sparkfun's named or implied example code projects for Sparkfun's nRF9160 Thing Plus:
^ Microcontroller Qualities and Considerations
Low power benchmark testing:
Out of Order Execution:
^ References
Util nrfjprog suppposedly here: