From 85ff6038050093c1950e0ec69cd597f848bfa4c6 Mon Sep 17 00:00:00 2001 From: Karl Palsson Date: Sat, 22 Oct 2011 15:46:19 +0000 Subject: [PATCH] Make the blink example build for all platforms. Less mucking around with make parameters, it's a tiny build. Verified with a VL and L board. Removed the old obsolete bin file --- doc/tutorial/tutorial.pdf | Bin 110986 -> 110993 bytes doc/tutorial/tutorial.tex | 8 +++-- example/blink/Makefile | 37 ++++++++++----------- example/blink/main.c | 68 ++++++++++++++------------------------ example/blink/o.bin | Bin 64 -> 0 bytes 5 files changed, 47 insertions(+), 66 deletions(-) delete mode 100755 example/blink/o.bin diff --git a/doc/tutorial/tutorial.pdf b/doc/tutorial/tutorial.pdf index 4ffcc3e563b3df294e331eb3fae97f9843f31817..371f805a0f1a4ddc103155c3fecc8c3a3fc972a0 100644 GIT binary patch delta 3270 zcmah|X*g638#agX6vrmew*_V;1ERm&9VMLZ3d$y8w(A$uu8e1fieW?_( z?~G8&g=DRmmT$VQ_x;iM@tr^Cy6$s7&;302{havsT*>db%6ay)gFtGyv=SuhnKbcg zmGKkKzR3+I^f5vUF2XctkC_VA+r9Rb*}~d7PIr#Wn@;ZT z0scgF^~Vx%OGgFA0^DU34t!;2nt$G$XcBN)OY8?7X=$L-+rHtYG?0fn4#5%s;jU;5L8<)dBMxwP&G~aCs z+jV-55fm_>>f!)yf1MZ^P2O^~dL|VZaIj2+a^m#rsfJHl--orMe~biKUG6vOM7QCR zyN78ZR^Nt#=C>#GdIKwLvk$II#auE!FB+KkBz72;MDg}U_8!$-3eSSB-kD#T7#eHp zM)t;=m_?9JiyVFJ)u0~yTgyc(GwL&3Lg#CoK|ogZeed$B*V#+6OHv_w5&5>d55?a_ zsQg3D8rYA+cD=|EFLXzdP9rSG{I1yz1${ zV;iI@zKH}sF8_8McZB~ZEExK2j|9;vy&Og zk-}&s)^L~Kmy~qqxf|Q8#fiWqDmit|rX@!b6!mXzz-wW@rclaUu zO2uqzu#WHQBwgP=YI-ZTSnc_dm7;k&98J@UQ8c@JL_7Pzc#bTW+vtOt; zi%VySvKW3+W2g<+=QU89Fr;4EdykRXRCeWhC+?+6=9h67bR7M8--`V76kZjjc|epG zDoJHDy?nmhYygefROWhzMmYPM05iYXU}bX}j*54BOJOFenRZ~~vcLN73I@0HE$dqE zvrv}pg+k@10IL#kI_QYVt8lE=I-ghrAUPU2)iYYZi?ZkTUGYXq`XIFedqE=7F|gdZ z#665p^Nx;AyWhr#mLQ8zm0nw=8cwa5leyWPS^7pE!H`Ed$0wwBaqpZ@hto$YSJ${M zhjwn;PnoDpfmB)Ru$tp3n97yB*P9U>>}JC2@@Gs&Vnh2Pm-o$Wn!Ae z$h#9Qp>oT`<^_o}4YFeF>v>rROzRb6S5sRJ)~3uyM649i#He?rLhux?!r$ukG-2NY z>f)XzVYa&GnrDFPe4}4@K2<9VIWSCgt`tX!k|&Bx$M_Y(rrU>IJ7wGLk^~fjo?O@- z0PWuf&Sx&Pm>6xIztYi92gfXxw=We^5n((s%u~M(9s6N(dCW4>hFagw+g?i z!yOKd_D(_jJ*{$6wcaSyem6|u@?VvUq{7_%V=ho;OpL5*68C#zl8f-k;-`@GgfulX zSzGBR;v#C4Mz#{sG~WJ6fBjkFR-y8}HHfcMgk-2(qMde{mv>(g!?jeVzAuqs)REsS zIR9afgZ3;ftph(~9e6Q@%$HgqM>sYduxBgkaNQ(2V)JZ&&ffQoHrxCYUZWXpqxq%H z@Xj0KPba;$J#xO%1ch?aryYHMGk!i=a7z@NHk}Udepklb`%TAjb)#(DX_cbrKL@=f z%C98L3iI9YqPeYI>QUsBI*c8Nk-b@C9`9m0;*j)|es94i$i(r-`pdeATbH6k86IUBJm-_qE^IdYcC$m0xbaXmib{i$vr!0Pq9t$4Y2JU%;&Erp;ZEmW zUejjVR;?d38=OaNMm9qckf+sKPqXUfZ7Lm$uuJje6E2DrL@(C7Bj~Fgs`+5>X0)-@ zNEA6%Y4_P|&ZA>wTZeI%eMmz1hUzhc$k{$eU7ne1cJtFzA;~DJKn%8yz5#@KY|W%m zEjNAmo1H>V(IFF)xw%xoC78WcpAc80fZPxxHuz*$VnP@V;@Ak#>yGReeby}s^GTM* zU_ioICHN83t1h}uey#{b-J>V~1VI3W0K!6Akh<{@MK)~R3^dq3LJNn_#sDC$s{tLlN<4 zRt+=?g@bm0I6SK`8o&@(MbH2NWW_Kz40b1mC;q)L^I*^f5d2pc`u7?EECxWcPK_sk zXqJm(nurg0vthtnZwq3}8w99mBc$NV2b6bR_yaYStlURN8ZfjIVmDfS2r4LI4)$=C0? Uud5rJ*&d6zR?qtr9$%X1AHCm}U1ChO^; z7?0buAK{&@KDnE677QPfho zBaMe^`9NW%*aVH`ov{dNuk@}++y7e#n35_p2QNR|6>|}Lz}D!r?Q^J$h;`5K?oe!E zZL0U5^$VPR!4YyyXt41857)prt@)^`f)3XM!7jGXbgtLgGO6B5_+?{~bT?L;{B^6s z`f-f(Yqb|Q-=N;wkNION&AH!t8K)eY;KY+YU#0ZY_TF;XJoWPv>9ZmfO6J@_lde2Q z6;fRZt~n&+t5;F^Y)<^)uBnJIq!o1KIZJNoYHmZ%*xdG~t>F{Nc7PSs4g}P?H)O!Y z$+5e0YTsdI#iwtnJVbY)({6e{$s3yW(PQTBk!|nmhOEE?yUB5$fw{_}JBlK+{T5Bd z64Ov{!Bsd3g3U))ljwd_+l@m&Zry1zkZ#h`fSLzYso zvCsbE6V~Ynd0j)iY)8^@vsC@W5B(CJ-<7AG)f=c^2(vGZP(M4WMAf^seLtyW*tDXf z@3}9PDBf>AI#cp_$1(4c&)bgaqJz1=%X=&@m8NJ&qU32~IhsO|vC6K6T$y1><)boN zsF63sLd-9ni>E(F?l-eT^lCdh7s|52wSMtg22xDe6|=N&P4^b++ zD3K+TCpy$#h1qLDjz9cLveMMzTwTXOp=zZCczp1@g;_?EO07bika4lx@z1O>A!A?6 z(P`Dqd4Sfprcj&yaZfFfz*-)bg*&W*e(lbjNOnY**v?bK&D8FSoS1&O=kvVg2{uQl z?`~1K-vIN~+wyAaKK{vpcT*YG$);zToM=ZY8Ht-!E|!`3S#Lf&cq~M+UV|4(_WtO+ zzeoQ4ciPQLCfj-X0_Sdi;N91(k@efOdn3DEdn(=|^m(P>%E)f%MgZN{=v8k!%5U)- z<x4kDnm(XqmHnJ#qO_c?fDv;tCra@&T`a3M!80C0O1zvIT0(L(mt0db9$ zks5yO%J#_krwF-EG{<%J5>K}uZ1ioRh}AXvctzgnSLiCTis~y2nhea?9s-cqN?|7W z>`}B;M9D&N*?ru^18+J@kLl&++%ju=hb}c&w)zq!26FXt6PoaW8gQyyo=#&?jzYr>@W_B2k666qnCZ!;XQBUq!YmQVuq4 zLqX9`o6sPWe&kvxC2>X6JWEt#=7HSwNQR>l<#ln&;I5X;&1e>Ns$865p836cdDr?3 zL;KPOn+F}kIgv`yjZNa&qcO-Bj#McFS{Lcu@*BP`Whs3*%LS@oe)exWQX+QVJ@j{j zq__bi*CAfiaHx}S!ky>oFM+0a2V%4?RLV2! zc^1W%lQmzqcUQ5L!;mktY^BZaVkjT8pHa92^YB(n3?v*`?IDHYhTT}v&dQVWdoxhF zr7C+}KtNal{bD%Q>Fmv(SLb~!ZcZEzw8iJi41e2%?5^~9=yq(vqTlGy2Ak#kP0?2z zyR1WjOX_49c^>Z8^H`d(R*#YhbMP+amlhYF-gVhO&jVU4D-6k`$uu}6^;cM@eDU$K z4yK2Ar%qI-&e`!E)$Hu}=o7NcqGQn)Gh^OZhiNY*omO~$MuwT>B)s5yt!QKNqt2+n zpl4Q2GM+!}uo-Acix$sw*zTvW0S1_F%h9o_w30M_B?ro#s54i{E@z&6tO@M-FdWYL z=}ouf$fsfp*2?2TdQZ*7o<~C(XO2$xw2yP*qIt%xv^js3ka zg`{bB&Tl==jfOqo%-7z1mFEfMW(#s|Z< zCQaUVe`Mp|u2o>Ey1NQfTRr?`arq0wxxu(9eY|Dcv8Z!et; zw^XAEE2E^5!tz_40D~LbeuT##X#Twtr|= zQ}557@Kn9t?2})9Hcd-J(mFIj}x!UBnF z_^U|?=>Le1C};}=V0bMLBCW+pL{Omj)qw$j>azYG(T_2Lf`&j42GA`vgR5~~A&i2`?5Lxlv>`VllyAekSNBfx()1OMX>A%XCJ!GB^{LE+V1 z#FB9QxnhJ49X258Lq;$J=)-tJ13W<=M>IAx!V__;`+_xrAsxki|Ci#RsH1~o`XBf6 W5B76$MXi>{ sudo ./st-util --stlinkv1 [-d /dev/sg2] -# STM32L discovery kit (onboard ST-link/V2) +# STM32L or STM32F4 discovery kit (onboard ST-link/V2) $> sudo ./st-util # Full help for other options (listen port, version) diff --git a/example/blink/Makefile b/example/blink/Makefile index e5f7045..cf7221d 100644 --- a/example/blink/Makefile +++ b/example/blink/Makefile @@ -1,35 +1,32 @@ -EXECUTABLE=blink.elf -BIN_IMAGE=blink.bin - CC=arm-none-eabi-gcc OBJCOPY=arm-none-eabi-objcopy -CFLAGS=-g -O2 -mlittle-endian -mthumb -ifeq ($(CONFIG_STM32L_DISCOVERY), 1) - CFLAGS+=-mcpu=cortex-m3 -DCONFIG_STM32L_DISCOVERY -else ifeq ($(CONFIG_STM32VL_DISCOVERY), 1) - CFLAGS+=-mcpu=cortex-m3 -DCONFIG_STM32VL_DISCOVERY=1 -else ifeq ($(CONFIG_STM32F4_DISCOVERY), 1) - CFLAGS+=-mcpu=cortex-m4 -DCONFIG_STM32F4_DISCOVERY=1 -endif - CFLAGS+=-ffreestanding -nostdlib -nostdinc +DEF_CFLAGS=-g -O2 -mlittle-endian -mthumb -ffreestanding -nostdlib -nostdinc # to run from SRAM -CFLAGS+=-Wl,-Ttext,0x20000000 -Wl,-e,0x20000000 +DEF_CFLAGS+=-Wl,-Ttext,0x20000000 -Wl,-e,0x20000000 # to write to flash then run -# CFLAGS+=-Wl,-Ttext,0x08000000 -Wl,-e,0x08000000 +# DEF_CFLAGS+=-Wl,-Ttext,0x08000000 -Wl,-e,0x08000000 + +CFLAGS_VL=$(DEF_CFLAGS) -mcpu=cortex-m3 -DCONFIG_STM32VL_DISCOVERY=1 +CFLAGS_L=$(DEF_CFLAGS) -mcpu=cortex-m3 -DCONFIG_STM32L_DISCOVERY +CFLAGS_F4=$(DEF_CFLAGS) -mcpu=cortex-m4 -DCONFIG_STM32F4_DISCOVERY=1 -all: $(BIN_IMAGE) +all: blink_32VL.elf blink_32L.elf blink_F4.elf -$(BIN_IMAGE): $(EXECUTABLE) +%.bin: %.elf $(OBJCOPY) -O binary $^ $@ -$(EXECUTABLE): main.c - $(CC) $(CFLAGS) $^ -o $@ +blink_32VL.elf: main.c + $(CC) $(CFLAGS_VL) $^ -o $@ +blink_32L.elf: main.c + $(CC) $(CFLAGS_L) $^ -o $@ +blink_F4.elf: main.c + $(CC) $(CFLAGS_F4) $^ -o $@ clean: - rm -rf $(EXECUTABLE) - rm -rf $(BIN_IMAGE) + rm -rf *.elf + rm -rf *.bin .PHONY: all clean diff --git a/example/blink/main.c b/example/blink/main.c index 0889b81..e0438a0 100644 --- a/example/blink/main.c +++ b/example/blink/main.c @@ -7,36 +7,30 @@ typedef unsigned int uint32_t; #if CONFIG_STM32VL_DISCOVERY -# define GPIOC 0x40011000 /* port C */ -# define GPIOC_CRH (GPIOC + 0x04) /* port configuration register high */ -# define GPIOC_ODR (GPIOC + 0x0c) /* port output data register */ +#define GPIOC 0x40011000 /* port C */ +#define GPIOC_CRH (GPIOC + 0x04) /* port configuration register high */ +#define LED_PORT_ODR (GPIOC + 0x0c) /* port output data register */ -# define LED_BLUE (1 << 8) /* port C, pin 8 */ -# define LED_GREEN (1 << 9) /* port C, pin 9 */ +#define LED_BLUE (1 << 8) /* port C, pin 8 */ +#define LED_GREEN (1 << 9) /* port C, pin 9 */ +#define LED_ORANGE 0 +#define LED_RED 0 static inline void setup_leds(void) { *(volatile uint32_t*)GPIOC_CRH = 0x44444411; } -static inline void switch_leds_on(void) -{ - *(volatile uint32_t*)GPIOC_ODR = LED_BLUE | LED_GREEN; -} - -static inline void switch_leds_off(void) -{ - *(volatile uint32_t*)GPIOC_ODR = 0; -} - #elif CONFIG_STM32L_DISCOVERY -# define GPIOB 0x40020400 /* port B */ -# define GPIOB_MODER (GPIOB + 0x00) /* port mode register */ -# define GPIOB_ODR (GPIOB + 0x14) /* port output data register */ +#define GPIOB 0x40020400 /* port B */ +#define GPIOB_MODER (GPIOB + 0x00) /* port mode register */ +#define LED_PORT_ODR (GPIOB + 0x14) /* port output data register */ -# define LED_BLUE (1 << 6) /* port B, pin 6 */ -# define LED_GREEN (1 << 7) /* port B, pin 7 */ +#define LED_BLUE (1 << 6) /* port B, pin 6 */ +#define LED_GREEN (1 << 7) /* port B, pin 7 */ +#define LED_ORANGE 0 +#define LED_RED 0 static inline void setup_leds(void) { @@ -44,26 +38,16 @@ static inline void setup_leds(void) *(volatile uint32_t*)GPIOB_MODER |= (1 << (7 * 2)) | (1 << (6 * 2)); } -static inline void switch_leds_on(void) -{ - *(volatile uint32_t*)GPIOB_ODR = LED_BLUE | LED_GREEN; -} - -static inline void switch_leds_off(void) -{ - *(volatile uint32_t*)GPIOB_ODR = 0; -} - #elif CONFIG_STM32F4_DISCOVERY #define GPIOD 0x40020C00 /* port D */ -# define GPIOD_MODER (GPIOD + 0x00) /* port mode register */ -# define GPIOD_ODR (GPIOD + 0x14) /* port output data register */ +#define GPIOD_MODER (GPIOD + 0x00) /* port mode register */ +#define LED_PORT_ODR (GPIOD + 0x14) /* port output data register */ -# define LED_GREEN (1 << 12) /* port B, pin 12 */ -# define LED_ORANGE (1 << 13) /* port B, pin 13 */ -# define LED_RED (1 << 14) /* port B, pin 14 */ -# define LED_BLUE (1 << 15) /* port B, pin 15 */ +#define LED_GREEN (1 << 12) /* port D, pin 12 */ +#define LED_ORANGE (1 << 13) /* port D, pin 13 */ +#define LED_RED (1 << 14) /* port D, pin 14 */ +#define LED_BLUE (1 << 15) /* port D, pin 15 */ static inline void setup_leds(void) { @@ -71,22 +55,20 @@ static inline void setup_leds(void) (1 << (13 * 2)) | (1 << (14 * 2)) | (1 << (15 * 2)); } +#else +#error "Architecture must be defined!" +#endif /* otherwise, error */ static inline void switch_leds_on(void) { - *(volatile uint32_t*)GPIOD_ODR = LED_GREEN | LED_ORANGE | LED_RED | LED_BLUE; + *(volatile uint32_t*)LED_PORT_ODR = LED_BLUE | LED_GREEN | LED_ORANGE | LED_RED; } static inline void switch_leds_off(void) { - *(volatile uint32_t*)GPIOD_ODR = 0; + *(volatile uint32_t*)LED_PORT_ODR = 0; } -#else -#error "Architecture must be defined!" -#endif /* otherwise, error */ - - #define delay() \ do { \ register unsigned int i; \ diff --git a/example/blink/o.bin b/example/blink/o.bin deleted file mode 100755 index 76324f796a6523d1acb35940d4d351466dd7773e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 zcmZ?##KP?INzm!YCr0KYpIn?AKk+b1B>;Jh{$CslTs}D{b0i%2#LvvIpV9iyMIc{^ P8^mV<@~!?{eD@pxMXwtU -- 2.30.2