From 72666a5b936368275423f0735af7939473616d68 Mon Sep 17 00:00:00 2001 From: Karl Palsson Date: Fri, 9 Nov 2012 21:38:06 +0000 Subject: [l1] Add Flash Memory Controller Register defns for L1. Also, some of the most basic essential helper functions. --- lib/stm32/l1/Makefile | 2 +- lib/stm32/l1/flash.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 lib/stm32/l1/flash.c (limited to 'lib') diff --git a/lib/stm32/l1/Makefile b/lib/stm32/l1/Makefile index 7f3e157..dc587c2 100644 --- a/lib/stm32/l1/Makefile +++ b/lib/stm32/l1/Makefile @@ -29,7 +29,7 @@ CFLAGS = -Os -g -Wall -Wextra -I../../../include -fno-common \ # ARFLAGS = rcsv ARFLAGS = rcs OBJS = rcc.o gpio.o desig.o crc.o usart.o exti2.o \ - gpio_common_all.o gpio_common_f24.o + flash.o gpio_common_all.o gpio_common_f24.o VPATH += ../../usb:../:../../cm3:../common diff --git a/lib/stm32/l1/flash.c b/lib/stm32/l1/flash.c new file mode 100644 index 0000000..06e8a59 --- /dev/null +++ b/lib/stm32/l1/flash.c @@ -0,0 +1,52 @@ +/* + * This file is part of the libopencm3 project. + * + * Copyright (C) 2010 Thomas Otto + * Copyright (C) 2010 Mark Butler + * Copyright (C) 2012 Karl Palsson + * + * This library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library. If not, see . + */ + +#include + +void flash_64bit_enable(void) +{ + FLASH_ACR |= FLASH_ACC64; +} + +void flash_64bit_disable(void) +{ + FLASH_ACR &= ~FLASH_ACC64; +} + +void flash_prefetch_enable(void) +{ + FLASH_ACR |= FLASH_PRFTEN; +} + +void flash_prefetch_disable(void) +{ + FLASH_ACR &= ~FLASH_PRFTEN; +} + +void flash_set_ws(u32 ws) +{ + u32 reg32; + + reg32 = FLASH_ACR; + reg32 &= ~(1 << 0); + reg32 |= ws; + FLASH_ACR = reg32; +} \ No newline at end of file -- cgit v1.2.3