Commit Graph

43 Commits

Author SHA1 Message Date
Uwe Hermann 83f5c58eb9 Switch the license to GPL, version 3 or later. 2009-07-18 16:27:47 +02:00
Uwe Hermann 74db299094 Add examples for LED blinking code, both, manually and using the API. 2009-07-18 16:22:45 +02:00
Uwe Hermann 3262983d27 Add initial GPIO API implementation.
This currently includes a number of basic functions. Example usage:

 gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_2_MHZ,
               GPIO_CNF_OUTPUT_PUSHPULL, GPIO12);
 gpio_set(GPIOB, GPIO4);
 gpio_clear(GPIOG, GPIO2 | GPIO9);
 gpio_toggle(GPIOA, GPIO7);
 reg16 = gpio_port_read(GPIOD);
 gpio_port_write(GPIOF, 0xc8fe);
2009-07-18 16:20:32 +02:00
Uwe Hermann d43224acfb Update example application README wrt flashing instructions. 2009-07-18 06:18:43 +02:00
Uwe Hermann 915d5bff90 Implement the simplest possible (working) blinking LED example application.
This is the first working example code which is tested on hardware.
The LED on the Olimex STM-H103 eval board is happily blinking.

We use a dummy "delay" function (basically a busy-waiting for-loop), which
will only work if you use -O0 in CFLAGS (-O2, -O3, or -Os will not work as
the compiler optimizes the loop away).

We use some arbitrary value for stack size (2 KB) and use main()
directly as the reset vector function. This will change later.

Also, we do the GPIO and clock init as well as the GPIO toggling for the
LED blinking fully "manually" for now, but there may be more higher-level
functions for doing that at some later date.
2009-07-18 06:09:08 +02:00
Uwe Hermann 355701525e Add initial minimal rcc.h implementation (not complete). 2009-07-18 05:34:38 +02:00
Uwe Hermann 526cb01aaa Silence OpenOCD per default, use V=1 for more verbose output. 2009-07-18 05:23:56 +02:00
Uwe Hermann 8d2190a86a Have *.o files depend on Makefile, in case we change gcc -O values there. 2009-07-18 05:17:49 +02:00
Uwe Hermann 10890b3f15 Don't use OpenOCD's "resume" command, only "reset" will work correctly.
Also, make the 'flash' target depend on 'images'.
2009-07-18 05:00:48 +02:00
Uwe Hermann 3b6809413b Remove one layer of indirection by killing unneeded #defines. 2009-07-18 02:51:22 +02:00
Uwe Hermann d7ec6a2983 Make 'flash' target a bit more generic and drop absolute paths. 2009-07-18 02:25:38 +02:00
Uwe Hermann 015b046c1e Merge stdint.h contents into common.h so we don't conflict with libc. 2009-07-18 01:39:30 +02:00
Uwe Hermann cf7d4df189 Make OpenOCD location easily configurable by using a variable. 2009-07-18 01:31:08 +02:00
Uwe Hermann f3d7eda380 Add convenience GPIOx #defines and MMIO GPIO register #defines. 2009-07-17 23:09:47 +02:00
Uwe Hermann d6611f62dd Add all base addresses for peripherals as per datasheet. 2009-07-17 23:05:01 +02:00
Uwe Hermann e04cec3b5d Add 'make flash' target using recent OpenOCD versions. 2009-07-17 23:03:42 +02:00
Uwe Hermann 9385e69344 Fix incorrect location of the board files of recent OpenOCD versions. 2009-07-17 19:19:08 +02:00
Uwe Hermann f3ac624f22 Add common.h, currently containing MMIO accessor functions. 2009-07-17 19:01:45 +02:00
Uwe Hermann e79dc2d65e Add README for the example project. 2009-07-17 13:55:25 +02:00
Uwe Hermann 0fe49aadec Document 'make V=1' usage. 2009-07-16 18:33:32 +02:00
Uwe Hermann caeba0c631 Rename INCLUDEDIR to INCDIR for brevity. 2009-07-16 15:55:26 +02:00
Uwe Hermann b6f7fa5715 Add missing .PHONY target. 2009-07-16 15:54:41 +02:00
Uwe Hermann bdba3af3a6 Create bin, hex, srec, and list files for the example project. 2009-07-16 15:49:28 +02:00
Uwe Hermann dc4a6a66ba Add .gitignore file. 2009-07-16 15:21:59 +02:00
Uwe Hermann 3a2c63129e Use a Linux kernel style build output printing.
Example:

$ make install
  BUILD   lib
  CC      gpio.o
  AR      libopenstm32.a
  BUILD   example
  CC      blink.o
  LD      blink
  INSTALL headers
  INSTALL lib

$ make clean
  CLEAN   blink.o
  CLEAN   blink
  CLEAN   gpio.o
  CLEAN   libopenstm32.a
2009-07-16 15:15:26 +02:00
Uwe Hermann 1c459b8c48 Add 'make V=1' support for the example blink code. 2009-07-16 14:59:06 +02:00
Uwe Hermann f0661cb343 Make default build silent, use 'make V=1' for verbose build. 2009-07-16 14:55:22 +02:00
Uwe Hermann 0efee48451 Add first example project (framework) using libopenstm32.
This is intended as a small blink example for the Olimex STM32-H103 board.
It doesn't do anything useful (yet), but it builds fine.

There's a sample Makefile and a preliminary ld script (which probably
needs some more work).
2009-07-16 14:29:00 +02:00
Uwe Hermann c62ca6143d Make gpio number argument 'unsigned int', there are no negative GPIOs. 2009-07-16 14:23:25 +02:00
Uwe Hermann 0fa4cbbdad Add some more GPIO related #defines.
This includes GPIO port base addresses, MODE[1:0] values, and CNF[1:0]
values.
2009-07-16 14:22:46 +02:00
Uwe Hermann e7567c835c Add memorymap.h with some peripheral base addresses. 2009-07-16 14:20:18 +02:00
Uwe Hermann 0a8135395a Add dummy gpio.c implementation and final Makefile.
The whole lib should now build and install fine. It's not yet tested
on hardware, though.
2009-07-16 03:27:05 +02:00
Uwe Hermann 1b2f6456bf Add some initial gpio.h #defines. 2009-07-16 03:20:12 +02:00
Uwe Hermann 75bb51fadf Add top-level include file intended for lib users. 2009-07-16 02:40:10 +02:00
Uwe Hermann ae6f321816 Add a stdint.h include file for u16, u32, etc. 2009-07-16 02:14:17 +02:00
Uwe Hermann 74620a94d0 Add initial top-level Makefile. 2009-07-16 01:55:48 +02:00
Uwe Hermann 1b708b68b6 Drop 's' from https, no need for encryption here. 2009-07-16 01:30:45 +02:00
Uwe Hermann 43d2a53127 Mention how PREFIX can be used to override the toolchain. 2009-07-16 01:23:48 +02:00
Uwe Hermann e5c5371997 Add some more info to the README. 2009-07-16 00:01:41 +02:00
Uwe Hermann b201bf19cb Add COPYING file. 2009-07-15 22:27:39 +02:00
Uwe Hermann e86ae96e1b Test. 2009-07-15 22:21:14 +02:00
Uwe Hermann 66785734bd Add README header. 2009-07-15 22:07:00 +02:00
Uwe Hermann 446beb7a88 Add initial README. 2009-07-15 18:59:07 +02:00