tzkhan /
Charming
A simple lightweight library that helps you generate ARM templates using C#
31/100 healthLoading repository data…
shawn-dsilva / repository
A simple template to write, compile and flash code for the TM4C123G Launchpad board on a Linux system.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
UPDATE : Added new startup.c and startup.h files for the TM4C,and a linker script all written from scratch by me,and Open Source,
unlike the earlier TI BSD licensed startup_gcc.c file and associated linker script
This is a simple template for writing and building code for the TM4C123GH6PM Launchpad development board by TI on a Linux(specifically Ubuntu) system.This repository includes a Makefile,a linker script TM4C123GH6PM.ld for the TM4C board,the Startup.c file and required headers for the TM4C microcontroller and a basic blinky main.c file
Directory structure after running make
.
├── bin
│ ├── main.bin
│ └── main.elf
├── inc
│ └── startup.h
├── ld
│ └── TM4C123GH6PM.ld
├── libs
│ └── startup.c
├── Makefile
├── obj
│ ├── main.d
│ ├── main.o
│ ├── startup.d
│ └── startup.o
├── README.md
└── src
└── main.c
Tested on Ubuntu 18.04 LTS
You need these dependencies before anything else
sudo apt install flex bison libgmp3-dev libmpfr-dev libncurses5-dev \
libmpc-dev autoconf texinfo build-essential libftdi-dev python-yaml \
zlib1g-dev libusb-1.0-0-dev
You will also need to get the GCC ARM compiler/linker
sudo apt install arm-none-eabi-gcc
And a flasher like lm4flash
git clone https://github.com/utzig/lm4tools.git
cd lm4tools/lm4flash
make
sudo cp lm4flash /usr/bin/
git clone https://github.com/shawn-dsilva/tm4c-linux-template.git
Create a file called 61.dialout.rules in /etc/udev/rules.d with this line inside it SUBSYSTEM=="usb", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666"
this is to allow any program to read or write to your TM4C Launchpad board,i.e you will not have to use sudo everytime
Header files(.h) to be placed in inc folder
C source files( .c) to be placed in src folder
Library files for peripherals to go in the libs folder,these files are also C source files( .c )
Set the TARGET variable in the Makefile to whatever you want the
finished .bin to be named as.
Run make
The object files will be in an obj folder
The main.bin file and the main.elf (with GNU GDB debugging symbols) will be in the bin folder
Run sudo make flash to flash the main.bin to TM4C board
Run make clean to delete all object and .bin files.
git clone git://git.code.sf.net/p/openocd/code openocd.git
cd openocd.git
./bootstrap
./configure --prefix=/usr --enable-maintainer-mode --enable-stlink
--enable-ti-icdi
make
sudo make install
sudo apt install gdb-multiarch
openocd -f /usr/share/openocd/scripts/board/ek-tm4c123gxl.cfg
You should see this output
Open On-Chip Debugger 0.10.0+dev-00554-g05e0d633 (2018-10-16-17:47)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control.
The results might differ compared to plain JTAG/SWD
adapter speed: 500 kHz
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : RCLK (adaptive clock speed)
Info : ICDI Firmware version: 9270
Info : tm4c123gh6pm.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : Listening on port 3333 for gdb connections
Now open a new terminal and run gdb-multiarch -tui this command opens gdb with a CLI user interface
At the prompt enter file bin/main.elf
and then target remote localhost:3333
you should see this UI
┌──src/main.c────────────────────────────────────────────────────────────────────────────────────────┐
│46 int main(void){ │
│47 PortF_Init(); │
│48 while(1){ │
>│49 if(PF4 == 0x0){ │
│50 Led = GPIO_PORTF_DATA_R; // read value in PORTF DATA register │
│51 Led = Led^0x02; // reverse value of LED │
│52 GPIO_PORTF_DATA_R = Led; // write value to PORTF DATA register,toggle led │
│53 Delay(); │
│54 } │
│55 } │
│56 } │
│57 │
│58 // Color LED(s) PortF │
│59 // dark --- 0 │
│60 // red R-- 0x02 │
│61 // blue --B 0x04 │
│62 // green -G- 0x08 │
│63 // yellow RG- 0x0A │
│64 // sky blue -GB 0x0C │
│65 // white RGB 0x0E │
│66 // pink R-B 0x06 │
│67 │
│68 │
│69 │
└────────────────────────────────────────────────────────────────────────────────────────────────────┘
remote Remote target In: main L49 PC: 0x2da
Type "apropos word" to search for commands related to "word".
(gdb) target remote localhost:3333
Remote debugging using localhost:3333
warning: Architecture rejected target-supplied description
warning: No executable has been specified and target does not support
determining executable automatically. Try using the "file" command.
Truncated register 16 in remote 'g' packet
(gdb) file bin/main.elf
Reading symbols from bin/main.elf...done.
(gdb) target remote localhost:3333
Remote debugging using localhost:3333
0x000002da in main () at src/main.c:49
(gdb)
layout regs to get the register layouts or disass to disassemble the code for exampleSelected from shared topics, language and repository description—not editorial ratings.
tzkhan /
A simple lightweight library that helps you generate ARM templates using C#
31/100 healthtiagordc /
A simple tool to create Azure resources (based on ARM templates) that may or may not require technical knowledge
18/100 healthReenbit /
This repository contains a set of PowerShell and ARM template scripts for deploying resources on Azure for automatic backups of Cosmos Database. Also, it contains ARM templates for creating simple web application with with service plan, key vault and application insights. That web app using Cosmos databse for storing simple documents. Note: web application divided into two applications one for UI and another one for API and they both deployed to the same service plan.