diff options
author | Fredrik Thulin <fredrik@thulin.net> | 2015-09-10 10:43:44 +0200 |
---|---|---|
committer | Fredrik Thulin <fredrik@thulin.net> | 2015-09-10 10:43:44 +0200 |
commit | f194c02df057411c0b4b4bb86a629a931901e80f (patch) | |
tree | 65a256c8736a258a366735a1569b53bd5990a06c | |
parent | 1ee0be1ef00f2be29210edee155716e6f359d2f5 (diff) |
emacs indentation
-rw-r--r-- | src/fmc-test/src/main.c | 220 | ||||
-rw-r--r-- | src/fmc-test/src/stm-fmc.c | 232 | ||||
-rw-r--r-- | src/fmc-test/src/stm32f4xx_hal_msp.c | 98 | ||||
-rw-r--r-- | src/fmc-test/src/stm32f4xx_it.c | 66 |
4 files changed, 308 insertions, 308 deletions
diff --git a/src/fmc-test/src/main.c b/src/fmc-test/src/main.c index ce04bee..38165b8 100644 --- a/src/fmc-test/src/main.c +++ b/src/fmc-test/src/main.c @@ -61,67 +61,67 @@ int main(void) //------------------------------------------------------------------------------ { int i; - // initialize hal + // initialize hal HAL_Init(); - // configure system clock + // configure system clock SystemClock_Config(); - // initialize gpio - MX_GPIO_Init(); + // initialize gpio + MX_GPIO_Init(); - // Blink blue LED for six seconds to not upset the Novena at boot. - led_on(GPIO_PIN_LED_BLUE); - for (i = 0; i < 12; i++) { - HAL_Delay(500); - led_toggle(GPIO_PIN_LED_BLUE); - } + // Blink blue LED for six seconds to not upset the Novena at boot. + led_on(GPIO_PIN_LED_BLUE); + for (i = 0; i < 12; i++) { + HAL_Delay(500); + led_toggle(GPIO_PIN_LED_BLUE); + } - // initialize rng - MX_RNG_Init(); + // initialize rng + MX_RNG_Init(); - // prepare fmc interface - fmc_init(); + // prepare fmc interface + fmc_init(); - // turn on green led, turn off other leds - led_on(GPIO_PIN_LED_GREEN); - led_off(GPIO_PIN_LED_YELLOW); - led_off(GPIO_PIN_LED_RED); - led_off(GPIO_PIN_LED_BLUE); + // turn on green led, turn off other leds + led_on(GPIO_PIN_LED_GREEN); + led_off(GPIO_PIN_LED_YELLOW); + led_off(GPIO_PIN_LED_RED); + led_off(GPIO_PIN_LED_BLUE); - // vars - volatile int data_test_ok = 0, addr_test_ok = 0, successful_runs = 0; + // vars + volatile int data_test_ok = 0, addr_test_ok = 0, successful_runs = 0; - // main loop (test, until an error is detected) + // main loop (test, until an error is detected) while (1) - { - // test data bus - data_test_ok = test_fpga_data_bus(); - // test address bus - addr_test_ok = test_fpga_address_bus(); + { + // test data bus + data_test_ok = test_fpga_data_bus(); + // test address bus + addr_test_ok = test_fpga_address_bus(); - // check for errors (abort testing in case of error) - if (data_test_ok < TEST_NUM_ROUNDS) break; + // check for errors (abort testing in case of error) + if (data_test_ok < TEST_NUM_ROUNDS) break; - // check for errors (abort testing in case of error) - if (addr_test_ok < TEST_NUM_ROUNDS) break; + // check for errors (abort testing in case of error) + if (addr_test_ok < TEST_NUM_ROUNDS) break; - // toggle yellow led to indicate, that we are alive - led_toggle(GPIO_PIN_LED_YELLOW); - successful_runs++; - } - - // error handler - while (1) - { - // turn on red led, turn off other leds - led_on(GPIO_PIN_LED_RED); - led_off(GPIO_PIN_LED_GREEN); - led_off(GPIO_PIN_LED_YELLOW); - led_off(GPIO_PIN_LED_BLUE); - } + // toggle yellow led to indicate, that we are alive + led_toggle(GPIO_PIN_LED_YELLOW); + successful_runs++; + } - // should never reach this line + // error handler + while (1) + { + // turn on red led, turn off other leds + led_on(GPIO_PIN_LED_RED); + led_off(GPIO_PIN_LED_GREEN); + led_off(GPIO_PIN_LED_YELLOW); + led_off(GPIO_PIN_LED_BLUE); + } + + // should never reach this line } @@ -129,37 +129,37 @@ int main(void) int test_fpga_data_bus(void) //------------------------------------------------------------------------------ { - int c, ok; - uint32_t rnd, buf; - HAL_StatusTypeDef hal_result; + int c, ok; + uint32_t rnd, buf; + HAL_StatusTypeDef hal_result; - // run some rounds of data bus test - for (c=0; c<TEST_NUM_ROUNDS; c++) + // run some rounds of data bus test + for (c=0; c<TEST_NUM_ROUNDS; c++) + { + data_diff = 0; + // try to generate "random" number + hal_result = HAL_RNG_GenerateRandomNumber(&rng_inst, &rnd); + if (hal_result != HAL_OK) break; + + // write value to fpga at address 0 + ok = fmc_write_32(0, &rnd); + if (ok != 0) break; + + // read value from fpga + ok = fmc_read_32(0, &buf); + if (ok != 0) break; + + // compare (abort testing in case of error) + if (buf != rnd) { - data_diff = 0; - // try to generate "random" number - hal_result = HAL_RNG_GenerateRandomNumber(&rng_inst, &rnd); - if (hal_result != HAL_OK) break; - - // write value to fpga at address 0 - ok = fmc_write_32(0, &rnd); - if (ok != 0) break; - - // read value from fpga - ok = fmc_read_32(0, &buf); - if (ok != 0) break; - - // compare (abort testing in case of error) - if (buf != rnd) - { - data_diff = buf; - data_diff ^= rnd; - break; - } + data_diff = buf; + data_diff ^= rnd; + break; } + } - // return number of successful tests - return c; + // return number of successful tests + return c; } @@ -167,44 +167,44 @@ int test_fpga_data_bus(void) int test_fpga_address_bus(void) //------------------------------------------------------------------------------ { - int c, ok; + int c, ok; uint32_t rnd, buf; HAL_StatusTypeDef hal_result; - // run some rounds of address bus test + // run some rounds of address bus test for (c=0; c<TEST_NUM_ROUNDS; c++) - { - addr_diff = 0; - // try to generate "random" number - hal_result = HAL_RNG_GenerateRandomNumber(&rng_inst, &rnd); - if (hal_result != HAL_OK) break; - - // we only have 2^22 32-bit words - rnd &= 0x00FFFFFC; - - // don't test zero addresses (fpga will store data, not address) - if (rnd == 0) continue; - - // write dummy value to fpga at some non-zero address - ok = fmc_write_32(rnd, &buf); - if (ok != 0) break; - - // read value from fpga - ok = fmc_read_32(0, &buf); - if (ok != 0) break; - - // fpga receives address of 32-bit word, while we need - // byte address here to compare - buf <<= 2; - - // compare (abort testing in case of error) - if (buf != rnd) - { - addr_diff = buf; - addr_diff ^= rnd; - break; - } - } + { + addr_diff = 0; + // try to generate "random" number + hal_result = HAL_RNG_GenerateRandomNumber(&rng_inst, &rnd); + if (hal_result != HAL_OK) break; + + // we only have 2^22 32-bit words + rnd &= 0x00FFFFFC; + + // don't test zero addresses (fpga will store data, not address) + if (rnd == 0) continue; + + // write dummy value to fpga at some non-zero address + ok = fmc_write_32(rnd, &buf); + if (ok != 0) break; + + // read value from fpga + ok = fmc_read_32(0, &buf); + if (ok != 0) break; + + // fpga receives address of 32-bit word, while we need + // byte address here to compare + buf <<= 2; + + // compare (abort testing in case of error) + if (buf != rnd) + { + addr_diff = buf; + addr_diff ^= rnd; + break; + } + } return c; } @@ -236,7 +236,7 @@ void SystemClock_Config(void) HAL_PWREx_ActivateOverDrive(); RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1 - |RCC_CLOCKTYPE_PCLK2; + |RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; @@ -263,14 +263,14 @@ void MX_RNG_Init(void) void MX_GPIO_Init(void) //------------------------------------------------------------------------------ { - GPIO_InitTypeDef GPIO_InitStruct; + GPIO_InitTypeDef GPIO_InitStruct; __GPIOJ_CLK_ENABLE(); GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_LOW; + GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOJ, &GPIO_InitStruct); } diff --git a/src/fmc-test/src/stm-fmc.c b/src/fmc-test/src/stm-fmc.c index 5459965..ca1a38d 100644 --- a/src/fmc-test/src/stm-fmc.c +++ b/src/fmc-test/src/stm-fmc.c @@ -19,11 +19,11 @@ SRAM_HandleTypeDef _fmc_fpga_inst; void fmc_init(void) //------------------------------------------------------------------------------ { - // configure fmc pins - _fmc_init_gpio(); + // configure fmc pins + _fmc_init_gpio(); - // configure fmc registers - _fmc_init_params(); + // configure fmc registers + _fmc_init_params(); } @@ -31,59 +31,59 @@ void fmc_init(void) int fmc_write_32(uint32_t addr, uint32_t *data) //------------------------------------------------------------------------------ { - // calculate target fpga address - uint32_t ptr = FMC_FPGA_BASE_ADDR + (addr & FMC_FPGA_ADDR_MASK); + // calculate target fpga address + uint32_t ptr = FMC_FPGA_BASE_ADDR + (addr & FMC_FPGA_ADDR_MASK); - // write data to fpga - HAL_StatusTypeDef ok = HAL_SRAM_Write_32b(&_fmc_fpga_inst, (uint32_t *)ptr, data, 1); + // write data to fpga + HAL_StatusTypeDef ok = HAL_SRAM_Write_32b(&_fmc_fpga_inst, (uint32_t *)ptr, data, 1); - // check for error - if (ok != HAL_OK) return -1; + // check for error + if (ok != HAL_OK) return -1; - // wait for transaction to complete - int wait = _fmc_nwait_idle(); + // wait for transaction to complete + int wait = _fmc_nwait_idle(); - // check for timeout - if (wait != 0) return -1; + // check for timeout + if (wait != 0) return -1; - // everything went ok - return 0; + // everything went ok + return 0; } //------------------------------------------------------------------------------ int fmc_read_32(uint32_t addr, uint32_t *data) - //------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ { - // calculate target fpga address - uint32_t ptr = FMC_FPGA_BASE_ADDR + (addr & FMC_FPGA_ADDR_MASK); + // calculate target fpga address + uint32_t ptr = FMC_FPGA_BASE_ADDR + (addr & FMC_FPGA_ADDR_MASK); - // perform dummy read transaction - HAL_StatusTypeDef ok = HAL_SRAM_Read_32b(&_fmc_fpga_inst, (uint32_t *)ptr, data, 1); + // perform dummy read transaction + HAL_StatusTypeDef ok = HAL_SRAM_Read_32b(&_fmc_fpga_inst, (uint32_t *)ptr, data, 1); - // check for error - if (ok != HAL_OK) return -1; + // check for error + if (ok != HAL_OK) return -1; - // wait for dummy transaction to complete - int wait = _fmc_nwait_idle(); + // wait for dummy transaction to complete + int wait = _fmc_nwait_idle(); - // check for timeout - if (wait != 0) return -1; + // check for timeout + if (wait != 0) return -1; - // read data from fpga - ok = HAL_SRAM_Read_32b(&_fmc_fpga_inst, (uint32_t *)ptr, data, 1); + // read data from fpga + ok = HAL_SRAM_Read_32b(&_fmc_fpga_inst, (uint32_t *)ptr, data, 1); - // check for error - if (ok != HAL_OK) return -1; + // check for error + if (ok != HAL_OK) return -1; - // wait for read transaction to complete - wait = _fmc_nwait_idle(); + // wait for read transaction to complete + wait = _fmc_nwait_idle(); - // check for timeout - if (wait != 0) return -1; + // check for timeout + if (wait != 0) return -1; - // everything went ok - return 0; + // everything went ok + return 0; } @@ -93,20 +93,20 @@ int _fmc_nwait_idle() { int cnt; // counter - // poll NWAIT (number of iterations is limited) + // poll NWAIT (number of iterations is limited) for (cnt=0; cnt<FMC_FPGA_NWAIT_MAX_POLL_TICKS; cnt++) - { + { // read pin state - GPIO_PinState nwait = HAL_GPIO_ReadPin(FMC_GPIO_PORT_NWAIT, FMC_GPIO_PIN_NWAIT); + GPIO_PinState nwait = HAL_GPIO_ReadPin(FMC_GPIO_PORT_NWAIT, FMC_GPIO_PIN_NWAIT); // stop waiting if fpga is ready - if (nwait == FMC_NWAIT_IDLE) break; - } + if (nwait == FMC_NWAIT_IDLE) break; + } - // check for timeout + // check for timeout if (cnt >= FMC_FPGA_NWAIT_MAX_POLL_TICKS) return -1; - // ok + // ok return 0; } @@ -114,93 +114,93 @@ int _fmc_nwait_idle() void _fmc_init_gpio(void) //------------------------------------------------------------------------------ { - // enable gpio clocks - __GPIOA_CLK_ENABLE(); - __GPIOB_CLK_ENABLE(); - __GPIOD_CLK_ENABLE(); + // enable gpio clocks + __GPIOA_CLK_ENABLE(); + __GPIOB_CLK_ENABLE(); + __GPIOD_CLK_ENABLE(); __GPIOE_CLK_ENABLE(); - __GPIOF_CLK_ENABLE(); - __GPIOG_CLK_ENABLE(); - __GPIOH_CLK_ENABLE(); + __GPIOF_CLK_ENABLE(); + __GPIOG_CLK_ENABLE(); + __GPIOH_CLK_ENABLE(); __GPIOI_CLK_ENABLE(); - // enable fmc clock - __FMC_CLK_ENABLE(); + // enable fmc clock + __FMC_CLK_ENABLE(); - // structure - GPIO_InitTypeDef GPIO_InitStruct; + // structure + GPIO_InitTypeDef GPIO_InitStruct; - // Port B - GPIO_InitStruct.Pin = GPIO_PIN_7; + // Port B + GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - // Port D - GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 - |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15 - |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_4 - |GPIO_PIN_5|GPIO_PIN_7; + // Port D + GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15 + |GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_3|GPIO_PIN_4 + |GPIO_PIN_5|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - /* - * When FMC is working with fixed latency, NWAIT pin must not be - * configured in AF mode, according to STM32F429 errata. - */ + /* + * When FMC is working with fixed latency, NWAIT pin must not be + * configured in AF mode, according to STM32F429 errata. + */ - // Port D (GPIO!) + // Port D (GPIO!) GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - // Port E - GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_7 - |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 - |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; + // Port E + GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_7 + |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - // Port F - GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 - |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13 - |GPIO_PIN_14|GPIO_PIN_15; + // Port F + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13 + |GPIO_PIN_14|GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - // Port G - GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 - |GPIO_PIN_4|GPIO_PIN_5; + // Port G + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 + |GPIO_PIN_4|GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - // Port H - GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 - |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; + // Port H + GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 + |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF12_FMC; HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); - // Port I + // Port I GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1 - |GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_6|GPIO_PIN_7; + |GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_6|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; @@ -213,87 +213,87 @@ void _fmc_init_gpio(void) void _fmc_init_params(void) //------------------------------------------------------------------------------ { - /* - * fill internal fields - */ - _fmc_fpga_inst.Instance = FMC_NORSRAM_DEVICE; + /* + * fill internal fields + */ + _fmc_fpga_inst.Instance = FMC_NORSRAM_DEVICE; _fmc_fpga_inst.Extended = FMC_NORSRAM_EXTENDED_DEVICE; - /* - * configure fmc interface settings - */ + /* + * configure fmc interface settings + */ - // use the first bank and corresponding chip select + // use the first bank and corresponding chip select _fmc_fpga_inst.Init.NSBank = FMC_NORSRAM_BANK1; - // data and address buses are separate + // data and address buses are separate _fmc_fpga_inst.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE; - // fpga mimics psram-type memory + // fpga mimics psram-type memory _fmc_fpga_inst.Init.MemoryType = FMC_MEMORY_TYPE_PSRAM; - // data bus is 32-bit + // data bus is 32-bit _fmc_fpga_inst.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_32; - // read transaction is sync + // read transaction is sync _fmc_fpga_inst.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_ENABLE; - // this _must_ be configured to high, according to errata, otherwise - // the processor may hang after trying to access fpga via fmc + // this _must_ be configured to high, according to errata, otherwise + // the processor may hang after trying to access fpga via fmc _fmc_fpga_inst.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_HIGH; - // wrap mode is not supported + // wrap mode is not supported _fmc_fpga_inst.Init.WrapMode = FMC_WRAP_MODE_DISABLE; - // don't care in fixed latency mode + // don't care in fixed latency mode _fmc_fpga_inst.Init.WaitSignalActive = FMC_WAIT_TIMING_DURING_WS; - // allow write access to fpga + // allow write access to fpga _fmc_fpga_inst.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE; - // use fixed latency mode (ignore wait signal) + // use fixed latency mode (ignore wait signal) _fmc_fpga_inst.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE; - // write and read have same timing + // write and read have same timing _fmc_fpga_inst.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE; - // don't care in sync mode + // don't care in sync mode _fmc_fpga_inst.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE; - // write transaction is sync + // write transaction is sync _fmc_fpga_inst.Init.WriteBurst = FMC_WRITE_BURST_ENABLE; - // keep clock always active + // keep clock always active _fmc_fpga_inst.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ASYNC; - /* - * configure fmc timing parameters - */ + /* + * configure fmc timing parameters + */ FMC_NORSRAM_TimingTypeDef fmc_timing; - // don't care in sync mode + // don't care in sync mode fmc_timing.AddressSetupTime = 15; - // don't care in sync mode + // don't care in sync mode fmc_timing.AddressHoldTime = 15; - // don't care in sync mode + // don't care in sync mode fmc_timing.DataSetupTime = 255; - // not needed, since nwait will be polled manually + // not needed, since nwait will be polled manually fmc_timing.BusTurnAroundDuration = 0; - // use smallest allowed divisor for best performance + // use smallest allowed divisor for best performance fmc_timing.CLKDivision = 2; - // stm is too slow to work with min allowed 2-cycle latency + // stm is too slow to work with min allowed 2-cycle latency fmc_timing.DataLatency = 3; - // don't care in sync mode + // don't care in sync mode fmc_timing.AccessMode = FMC_ACCESS_MODE_A; - // initialize fmc + // initialize fmc HAL_SRAM_Init(&_fmc_fpga_inst, &fmc_timing, NULL); } diff --git a/src/fmc-test/src/stm32f4xx_hal_msp.c b/src/fmc-test/src/stm32f4xx_hal_msp.c index fcb10ad..f932c45 100644 --- a/src/fmc-test/src/stm32f4xx_hal_msp.c +++ b/src/fmc-test/src/stm32f4xx_hal_msp.c @@ -1,36 +1,36 @@ /** - ****************************************************************************** - * File Name : stm32f4xx_hal_msp.c - * Description : This file provides code for the MSP Initialization - * and de-Initialization codes. - ****************************************************************************** - * - * COPYRIGHT(c) 2015 STMicroelectronics - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ +****************************************************************************** +* File Name : stm32f4xx_hal_msp.c +* Description : This file provides code for the MSP Initialization +* and de-Initialization codes. +****************************************************************************** +* +* COPYRIGHT(c) 2015 STMicroelectronics +* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* 1. Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* 3. Neither the name of STMicroelectronics nor the names of its contributors +* may be used to endorse or promote products derived from this software +* without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +*/ /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal.h" @@ -39,8 +39,8 @@ /* USER CODE END 0 */ /** - * Initializes the Global MSP. - */ + * Initializes the Global MSP. + */ void HAL_MspInit(void) { /* USER CODE BEGIN MspInit 0 */ @@ -50,7 +50,7 @@ void HAL_MspInit(void) HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); /* System interrupt init*/ -/* SysTick_IRQn interrupt configuration */ + /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); /* USER CODE BEGIN MspInit 1 */ @@ -62,16 +62,16 @@ void HAL_RNG_MspInit(RNG_HandleTypeDef* hrng) { if(hrng->Instance==RNG) - { - /* USER CODE BEGIN RNG_MspInit 0 */ + { + /* USER CODE BEGIN RNG_MspInit 0 */ - /* USER CODE END RNG_MspInit 0 */ - /* Peripheral clock enable */ - __RNG_CLK_ENABLE(); - /* USER CODE BEGIN RNG_MspInit 1 */ + /* USER CODE END RNG_MspInit 0 */ + /* Peripheral clock enable */ + __RNG_CLK_ENABLE(); + /* USER CODE BEGIN RNG_MspInit 1 */ - /* USER CODE END RNG_MspInit 1 */ - } + /* USER CODE END RNG_MspInit 1 */ + } } @@ -79,13 +79,13 @@ void HAL_RNG_MspDeInit(RNG_HandleTypeDef* hrng) { if(hrng->Instance==RNG) - { - /* USER CODE BEGIN RNG_MspDeInit 0 */ + { + /* USER CODE BEGIN RNG_MspDeInit 0 */ - /* USER CODE END RNG_MspDeInit 0 */ - /* Peripheral clock disable */ - __RNG_CLK_DISABLE(); - } + /* USER CODE END RNG_MspDeInit 0 */ + /* Peripheral clock disable */ + __RNG_CLK_DISABLE(); + } /* USER CODE BEGIN RNG_MspDeInit 1 */ /* USER CODE END RNG_MspDeInit 1 */ diff --git a/src/fmc-test/src/stm32f4xx_it.c b/src/fmc-test/src/stm32f4xx_it.c index 92c9a09..b2b64bf 100644 --- a/src/fmc-test/src/stm32f4xx_it.c +++ b/src/fmc-test/src/stm32f4xx_it.c @@ -1,35 +1,35 @@ /** - ****************************************************************************** - * @file stm32f4xx_it.c - * @brief Interrupt Service Routines. - ****************************************************************************** - * - * COPYRIGHT(c) 2015 STMicroelectronics - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ +****************************************************************************** +* @file stm32f4xx_it.c +* @brief Interrupt Service Routines. +****************************************************************************** +* +* COPYRIGHT(c) 2015 STMicroelectronics +* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* 1. Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* 3. Neither the name of STMicroelectronics nor the names of its contributors +* may be used to endorse or promote products derived from this software +* without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +****************************************************************************** +*/ /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal.h" #include "stm32f4xx.h" @@ -46,8 +46,8 @@ /******************************************************************************/ /** -* @brief This function handles System tick timer. -*/ + * @brief This function handles System tick timer. + */ void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ |