Samsung IoT Development Kit for S5JT200 chipset.
Information
Environment Set-up
How to program a binary
ROMFS
Using GDB
Configuration Sets
Board Configuration
will be updated
on Ubuntu 13.10 ~ 14.xx version
sudo apt-get install -y lib32z1 lib32ncurses5 lib32bz2-1.0
on Ubuntu over 16.xx version
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1
Install the package for usb
sudo apt-get install libusb-dev
Get the package, libftdi-0.19
Untar the downloaded package
tar -zxvf libftdi-0.19.tar.gz
Build and install the package for libftdi
cd libftdi-0.19
./configure
make
sudo make install
Link the built files
cd /usr/lib
sudo ln -s /usr/local/lib/libftdi.a libftdi.a
sudo ln -s /usr/local/lib/libftdi.la libftdi.la
sudo ln -s /usr/local/lib/libftdi.so.1.19.0 libftdi.so.1.19.0
sudo ln -s /usr/local/lib/libftdi.so.1.19.0 libftdi.so
sudo ln -s /usr/local/lib/libftdi.so.1.19.0 libftdi.so.1
Get the package, libftd2xxx1.0.4
Untar the downloaded package
tar -zxvf libftd2xx1.0.4.tar.gz
Copy and link the files
cd libftd2xx1.0.4
sudo cp ftd2xx.h /usr/include
sudo cp WinTypes.h /usr/include
sudo cp build/x86_64/libftd2xx.so.1.0.4 /usr/local/lib
cd /usr/local/include
sudo ln -s /usr/include/ftd2xx.h ftd2xx.h
sudo ln -s /usr/include/WinTypes.h WinTypes.h
cd /usr/local/lib
sudo ln -s libftd2xx.so.1.0.4 libftd2xx.so
cd /usr/lib
sudo ln -s /usr/local/lib/libftd2xx.so.1.0.4 libftd2xx.so
This is an optional environment.
But as this board is connected through USB, some operation like programming of binary can't be worked without this configuration.
- Make a file named 99-<anyname>.rules.
- Add below contents at above file.
SUBSYSTEMS=="usb",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6010",MODE="0666" RUN+="/sbin/modprobe ftdi_sio" RUN+="/bin/sh -c 'echo 0403 6010 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
- Place the above file in /etc/udev/rules.d folder with sudo permission.
- Reboot your system.
After buiding a Tizen RT, execute below at $TIZENRT_BASEDIR/os folder.
TIZENRT_BASEDIR was set at [Getting the sources] tab of Quick Start.
make download ALL
Before executing below steps, execute generic steps, step 1 and step 2.
- Modify partition configs.
Below steps creates ROMFS partition with size 256KB at the end,
where romfs device is a ftl mtd block device and romfs filesystem will be mounted on ftl mtd device "/dev/mtdblockX"- Split last partition size to (256, 256) in SIDK_S5JT200_FLASH_PART_LIST
Board Selection -> change values at Flash partition size list (in KBytes)
- Append "romfs," at end to SIDK_S5JT200_FLASH_PART_TYPE
Board Selection -> append string at Flash partition type list
- Append "rom," at end to SIDK_S5JT200_FLASH_PART_NAME
Board Selection -> append string at FLash partition name list
- Split last partition size to (256, 256) in SIDK_S5JT200_FLASH_PART_LIST
- Enable auto-mount config.
Board Selection -> Automount partitions -> Automount ROM read only partition to y
After above two steps, build Tizen RT and program a Tizen RT binary through above method.
-
Build Tizen RT and program a Tizen RT binary through above method
-
Run GDB server by running openocd with gdb cfg
cd $TIZENRT_BASEDIR/build/configs/sidk_s5jt200/tools/openocd/ ./linux64/openocd -f s5jt200_attach_gdb.cfg
-
Run GDB client from another terminal
cd $TIZENRT_BASEDIR/os/ arm-none-eabi-gdb -ex "target remote :3333" $TIZENRT_BASEDIR/build/output/bin/tinyara
- To run tinyara from beginning, set entrypoint to pc register in gdb.
(gdb) set $pc = entry_addr
- entry_addr can be obtained by
arm-none-eabi-readelf -h $TIZENRT_BASEDIR/build/output/bin/tinyara
There are three configuration sets for sidk_s5jt200, including 'hello_with_tash', 'kernel_sample', and 'tc'.
for running a hello example with shell enabled
for running kernel functions
for runnig unit test cases
for running AWS IoT SDK examples.
There are two JTAG ports, one is OpenOCD through USB port and the other is normal JTAG interface like Lauterbach Trace-32.
J3 Header pin is used to select JTAG port.
Pin | OpenOCD | Normal JTAG |
---|---|---|
1-2 | Connect | Open |
3-4 | Connect | Open |
5-6 | Connect | Open |
7-8 | Connect | Open |
9-10 | Connect | Open |
One of UART0, UART1, UART2, UART3, or UARTDBG channel could be connected to CON3 through the J2 configuration.
Pin | UART0 | UART1 | UART2 | UART3 | UARTDBG (CON3) |
UARTDBG (CON4) |
---|---|---|---|---|---|---|
1-2 | Open | Open | Open | Open | Connect | Open |
3-4 | Open | Open | Open | OPen | Connect | Open |
7-8 | Connect | Open | Open | OPen | Open | Open |
9-10 | Connect | Open | Open | OPen | Open | Open |
11-12 | Open | Connect | Open | OPen | Open | Open |
13-14 | Open | Connect | Open | OPen | Open | Open |
15-16 | Open | Open | Connect | OPen | Open | Open |
17-18 | Open | Open | Connect | OPen | Open | Open |
19-20 | Open | Open | Open | Connect | Open | Open |
21-22 | Open | Open | Open | Connect | Open | Open |
UART source for CON5 could be selected through J7 configuration.
Pin | UART0 | UART1 | UART2 | UART3 |
---|---|---|---|---|
1-2 | Connect | Open | Open | OPen |
3-4 | Connect | Open | Open | OPen |
5-6 | Open | Connect | Open | OPen |
7-8 | Open | Connect | Open | OPen |
9-10 | Open | Open | Connect | OPen |
11-12 | Open | Open | Connect | OPen |
13-14 | Open | Open | Open | Connect |
15-16 | Open | Open | Open | Connect |
UARTDBG channel is being used as Console and it could be connected to CON3 or CON4 with J2 and J4 pin configuration.
Pin | UARTDBG on CON3 (SERIAL) |
UARTDBT on CON4 (USB) |
---|---|---|
J2 : 1-2 | Connect | Open |
J2 : 3-4 | Connect | Open |
J4 : 1-2 | Open | Connect |
J4 : 3-4 | Open | Connect |