Real practice of Networking
design on specialized
for
ARM Cortex-M
Ben Wei (a.k.a ben6)
2013/08/03
Right’s to copy
Attribution – ShareAlike 3.0
You are free
•  to copy, distribute, display, and perform the work
•  to make...
Who am I?
•  Current
o  JuluOSDev, StarOS Lab
•  Bio
Love to try new technologies and
enjoy researching topics in networki...
Agenda
• Why real practice topic?
• Hardware Overview
• Development experience sharing
Why? Connect Internet of Things
Internet
of Things
thingsquare
thingsquare
thingsquare
thingsquare
Thingsqure Tech Overview
Thingsqure
of Services
Things
Contiki-OS Router
Connect Apps with things
Connecting thermostats, light
bulbs, street lights, and more
Real Practice
Prototype
Cortex-M Hardware with Ethernet adapter
enc28J60STM32F407VGT6
USB-Serial Controller
Prolific 2303
STM32F407VGT6
•  32-bit ARM® Cortex™-M4-based
STM32-F4
•  168MHz, upto 210 MIPS
•  1MB Flash, 192KB RAM
ST-LINK
USB for
In...
Architecture diagram
Network Adapter
Driver
TCPIP Stack (UIP, lwIP, SDP …)
Application 1 Application 2 Application n
Firmw...
Ethernet Adapter
Adapter Survery
SPI Ethernet Adapter
SPI Interface
SPI
Master
SCLK
MOSI
MISO
CS
SPI
Slave
SCLK
MOSI
MISO
CS
Serial Peripheral Interface Bus,SPI
What’s SPI? (Input)
MSB (I) LSB (I)
Open
What’s SPI? (Output)
MSB LSB
ignore
Driver – enc28j60
Base on SPI Command with OP Code
SPI Commands:
RCR, RBM, WCR, WBM, BFS, BFC, SC
Op Code argument data
By...
enc28j60 Ethernet adapter
SPI pinout
PA5 = SCK
PA6 = MISO
PA7 = MOSI
PE7 = CS
ENC28J60 Pinouts
Buffer
Development
Experience Sharing
F4OS
F4OS
git://github.com/benwei/F4OS.git
-- Fork from prattmic/F4OS
F4OS
Architecture diagram
Network Adapter
En28j60 Driver
TCPIP Stack (SDP)
Shell
F4OS
Hardware
ARM Board
Simple Server
Toolchain
launchpad.net/gcc-arm-
embedded/+download
Debugging
•  USB Serial Controller
•  STM32 STlink
USB Serial Console Mac OS X as example
1
Screen is your good friend
sudo screen /dev/tty.usbserial 115200
2
st-util wait gdb
ben@xubuntu:~/src/github/stlink$ ./st-util
2012-06-10T22:56:32 INFO src/stlink-usb.c: -- exit_dfu_mode
20...
gdb with st-util
~/F4OS$ arm-none-eabi-gdb
GNU gdb (Sourcery CodeBench Lite 2012.03-56) 7.2.50.20100908-cvs
Copyright (C) ...
How to build F4OS?
$ git://github.com/benwei/F4OS.git
$ cd F4OS_prototype
$ make clean
$ make
$ make burn
GCC_ARM_PATH="/o...
Write bin file to F4
$ make burn
st-flash write ./out/f4os.bin 0x8000000
2013-08-01T13:28:57 INFO src/stlink-common.c: Loa...
Demo
Environment Demo
Summary
•  Why Stm32 Networking?
•  Hardware Prototype:
o  STM32F4 Discovery + ENC28J60 + PL2303
•  Experience Sharing & D...
?
Q & A
compile stlink in ubuntu
sudo apt-get install autoconf libusb-1.0.0
sh autogen.sh
./configure
make
Tips: please don't inst...
STM32F407VGT6
•  microcontroller featuring 32-bit ARM Cortex-M4F core, 1 MB Flash, 192
KB RAM in an LQFP100 package
•  On-...
References
•  ENC28J60 programming guide
•  http://thingsquare.com/tech/
•  http://www.contiki-os.org/
•  STM32F4DISCOVERY...
CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h
STM32F4 Working MHz (F4OS)
#define PLL_M 25
#define PLL_M 8
-DHSE_VALUE=8000...
Real practice of Networking design on specialized for ARM Cortex-M
Upcoming SlideShare
Loading in …5
×

Real practice of Networking design on specialized for ARM Cortex-M

2,828 views

Published on

slide for COSCUP 2013
PS: The source of this practice will be released later on github and have an issue which SPI unable to start successfully now.
prototype temporary source code with F4OS and sdp_tcp: https://github.com/benwei/F4OS/tree/feature/coscup2013-stm32-net

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,828
On SlideShare
0
From Embeds
0
Number of Embeds
157
Actions
Shares
0
Downloads
54
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Real practice of Networking design on specialized for ARM Cortex-M

  1. 1. Real practice of Networking design on specialized for ARM Cortex-M Ben Wei (a.k.a ben6) 2013/08/03
  2. 2. Right’s to copy Attribution – ShareAlike 3.0 You are free •  to copy, distribute, display, and perform the work •  to make derivative works •  to make commercial use of the work Under the following conditions •  For any reuse or distribution, you must make clear to others the license terms of this work. •  Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. © Copyright 2013 juluos http://juluos.org License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode
  3. 3. Who am I? •  Current o  JuluOSDev, StarOS Lab •  Bio Love to try new technologies and enjoy researching topics in networking and operation system domains http://about.me/ben6
  4. 4. Agenda • Why real practice topic? • Hardware Overview • Development experience sharing
  5. 5. Why? Connect Internet of Things Internet of Things
  6. 6. thingsquare
  7. 7. thingsquare
  8. 8. thingsquare
  9. 9. thingsquare
  10. 10. Thingsqure Tech Overview Thingsqure of Services Things Contiki-OS Router
  11. 11. Connect Apps with things Connecting thermostats, light bulbs, street lights, and more
  12. 12. Real Practice Prototype Cortex-M Hardware with Ethernet adapter
  13. 13. enc28J60STM32F407VGT6 USB-Serial Controller Prolific 2303
  14. 14. STM32F407VGT6 •  32-bit ARM® Cortex™-M4-based STM32-F4 •  168MHz, upto 210 MIPS •  1MB Flash, 192KB RAM ST-LINK USB for Input USB 2.0 OTG
  15. 15. Architecture diagram Network Adapter Driver TCPIP Stack (UIP, lwIP, SDP …) Application 1 Application 2 Application n Firmware Hardware ARM Board
  16. 16. Ethernet Adapter
  17. 17. Adapter Survery SPI Ethernet Adapter
  18. 18. SPI Interface SPI Master SCLK MOSI MISO CS SPI Slave SCLK MOSI MISO CS Serial Peripheral Interface Bus,SPI
  19. 19. What’s SPI? (Input) MSB (I) LSB (I) Open
  20. 20. What’s SPI? (Output) MSB LSB ignore
  21. 21. Driver – enc28j60 Base on SPI Command with OP Code SPI Commands: RCR, RBM, WCR, WBM, BFS, BFC, SC Op Code argument data Byte 0 Byte 1
  22. 22. enc28j60 Ethernet adapter SPI pinout PA5 = SCK PA6 = MISO PA7 = MOSI PE7 = CS
  23. 23. ENC28J60 Pinouts Buffer
  24. 24. Development Experience Sharing
  25. 25. F4OS
  26. 26. F4OS git://github.com/benwei/F4OS.git -- Fork from prattmic/F4OS
  27. 27. F4OS
  28. 28. Architecture diagram Network Adapter En28j60 Driver TCPIP Stack (SDP) Shell F4OS Hardware ARM Board Simple Server
  29. 29. Toolchain launchpad.net/gcc-arm- embedded/+download
  30. 30. Debugging •  USB Serial Controller •  STM32 STlink
  31. 31. USB Serial Console Mac OS X as example 1 Screen is your good friend sudo screen /dev/tty.usbserial 115200 2
  32. 32. st-util wait gdb ben@xubuntu:~/src/github/stlink$ ./st-util 2012-06-10T22:56:32 INFO src/stlink-usb.c: -- exit_dfu_mode 2012-06-10T22:56:32 INFO src/stlink-common.c: Loading device parameters.... 2012-06-10T22:56:32 INFO src/stlink-common.c: Device connected is: F4 device, id 0x20006411 2012-06-10T22:56:32 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes Chip ID is 00000413, Core ID is 2ba01477. KARL - should read back as 0x03, not 60 02 00 00 init watchpoints Listening at *:4242... Listening at *:4242 ./st-util
  33. 33. gdb with st-util ~/F4OS$ arm-none-eabi-gdb GNU gdb (Sourcery CodeBench Lite 2012.03-56) 7.2.50.20100908-cvs Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-none- eabi". For bug reporting instructions, please see: <https://support.codesourcery.com/GNUToolchain/>. (gdb) target remote :4242 Remote debugging using :4242 0x007f3ff4 in ?? () target remote :4242
  34. 34. How to build F4OS? $ git://github.com/benwei/F4OS.git $ cd F4OS_prototype $ make clean $ make $ make burn GCC_ARM_PATH="/opt/gcc-arm-none-eabi-4_7-2013q1/bin" STLINK_PATH="$SH_PATH/stlink” export PATH="$PATH:$GCC_ARM_PATH:$STLINK_PATH" 1 2
  35. 35. Write bin file to F4 $ make burn st-flash write ./out/f4os.bin 0x8000000 2013-08-01T13:28:57 INFO src/stlink-common.c: Loading device parameters.... 2013-08-01T13:28:57 INFO src/stlink-common.c: Device connected is: F4 device, id 0x20006411 2013-08-01T13:28:57 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes 2013-08-01T13:28:57 INFO src/stlink-common.c: Attempting to write 30540 (0x774c) bytes to stm32 address: 134217728 (0x8000000) EraseFlash - Sector:0x0 Size:0x4000 Flash page at addr: 0x08000000 erasedEraseFlash - Sector:0x1 Size:0x4000 Flash page at addr: 0x08004000 erased 2013-08-01T13:28:57 INFO src/stlink-common.c: Finished erasing 2 pages of 16384 (0x4000) bytes 2013-08-01T13:28:57 INFO src/stlink-common.c: Starting Flash write for F2/F4 2013-08-01T13:28:57 INFO src/stlink-common.c: Successfully loaded flash loader in sram size: 30540 2013-08-01T13:28:58 INFO src/stlink-common.c: Starting verification of write complete 2013-08-01T13:28:58 INFO src/stlink-common.c: Flash written and verified! jolly good! st-flash write ./out/f4os.bin 0x8000000
  36. 36. Demo Environment Demo
  37. 37. Summary •  Why Stm32 Networking? •  Hardware Prototype: o  STM32F4 Discovery + ENC28J60 + PL2303 •  Experience Sharing & Development tips o  How to build, burn, debug tools
  38. 38. ? Q & A
  39. 39. compile stlink in ubuntu sudo apt-get install autoconf libusb-1.0.0 sh autogen.sh ./configure make Tips: please don't install, just use export PATH=~/stlink/:$PATH For easier update
  40. 40. STM32F407VGT6 •  microcontroller featuring 32-bit ARM Cortex-M4F core, 1 MB Flash, 192 KB RAM in an LQFP100 package •  On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone ST- LINK/V2 (with SWD connector for programming and debugging) •  LIS302DL, ST MEMS motion sensor, 3-axis •  digital output accelerometer •  MP45DT02, ST MEMS audio sensor, omni- directional digital microphone •  CS43L22, audio DAC with integrated class D speaker driver •  Eight LEDs: •  USB OTG FS with micro-AB connector •  Extension header for all LQFP100 I/Os for quick connection to prototyping board and easy probing More - reference DM00037955.pdf
  41. 41. References •  ENC28J60 programming guide •  http://thingsquare.com/tech/ •  http://www.contiki-os.org/ •  STM32F4DISCOVERYDiscovery kit
  42. 42. CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h STM32F4 Working MHz (F4OS) #define PLL_M 25 #define PLL_M 8 -DHSE_VALUE=8000000 boot/boot_main.c 1 2

×