[En-Nut-Discussion] STM32F7xx fixes

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Mon Apr 18 17:39:27 CEST 2016


>>>>> "Holger" == Holger Mai <mai at gemac.info> writes:

    Holger> Hello all 1.  found an error in stm32_clk.c, Trunk 6442: it is
    Holger> impossible to set the AHB Clock to maximum speed (= SYSCLK),
    Holger> because if AHB divisor = 1, the divisor in RCC->CFGR.HPRE is set
    Holger> to 7
Please reread the reference manualcarefully:

Bits 7:4 HPRE: AHB prescaler
          Set and cleared by software to control AHB clock division factor.
          ...
          0xxx: system clock not divided
          1000: system clock divided by 2
So in my understanding 0b0111 == d7 means undivided clock.

...

    Holger> same theme, possible error in configurator with Trunk 6442 and
    Holger> STM32F7xx if edit the clock divisors, and let the AHB Clock
    Holger> divisor at 1 (default), then no symbol AHB_DIV is generated in
    Holger> clock.h, and no related Entry is generated in the .conf file. If
    Holger> set AHB divisor to 2, save the config, then set to 1 and
    Holger> compile, all is ok and the entrys will be generated. I did not
    Holger> found any default settings for AHB_DIV in source code if not
    Holger> defined in clock.h.

Sorry, I don't understand what you mean. If with the explanation above you
still think it is an error, perhaps explanin in other words or in private
mail in german.

    Holger> 2.  found an error in stm32xxxx.h the lines behind 303 "#elif
    Holger> defined(MCU_STM32F7)" for all 3 STM32F7 types is the same Header
    Holger> file included. Thats wrong and makes some trouble if you want to
    Holger> use a different one than STM32F745.

Fixed in my tree. Thanks
    Holger> 3.  in Trunk 6427 and later, in stm32xxxx.h at line 474: The
    Holger> ENABLE / DISABLE Symbols are in some standard headerfiles
    Holger> declared as enum "FunctionalState" (i.e. stm32F7xx.h). The
    Holger> declaration of these symbols with the same name disturbes the
    Holger> Application usage of the HAL and CMSIS drivers, who needs the
    Holger> original headerfiles.  If there is a symbol, that only exists at
    Holger> configurators compiletime (or has to be defined by configurator
    Holger> for this purpose), you can add a condition like "#if
    Holger> (BUILD_LIBRARYS == 1") around the DISBALE /ENABLE Defines.  This
    Holger> is also to do in the include/dev/usart.h for the same symbols.

For ENABLE/DISABLE, does following commit help?



    Holger> 4.  please add an Olimex STM32E407 board and an STM32E756 board:
    -> add to dev\board.h:

    Holger> #define BOARDNAME "STM32F4DIS_BB" #include
    Holger> <arch/cm3/board/stm32f4dis_bb.h> //new from line 277 ff: #elif
    Holger> defined(STM32E407) #include <arch/cm3/board/stm32e756.h> #define
    Holger> BOARDNAME "STM32E407" #elif defined(STM32E756) #include
    Holger> <arch/cm3/board/stm32e756.h> #define BOARDNAME "STM32E756" //end
    Holger> of new #elif defined(USPS) ...
commit dca2fee7af22fea4960808404ac73816aa8dbe38
Author: Uwe Bonnes <bon at elektron.ikp.physik.tu-darmstadt.de>
Date:   Mon Apr 18 17:31:55 2016 +0200

    stm32xxxx.h: Protect defines eventually used in vendor headers.
    
    Thanks to Holger Mai <mai at gemac.info>.

diff --git a/nut/include/arch/cm3/stm/stm32xxxx.h b/nut/include/arch/cm3/stm/stm32xxxx.h
index c31e6b0..bd8ec33 100644
--- a/nut/include/arch/cm3/stm/stm32xxxx.h
+++ b/nut/include/arch/cm3/stm/stm32xxxx.h
@@ -471,7 +471,12 @@
 extern int Stm32ResetCause(void);
 
 /* Allow readable values in the configurator */
-#define ENABLE  1
-#define DISABLE 0
+#if !defined ENABLE
+# define ENABLE  1
+#endif
+
+#if !defined DISABLE
+# define DISABLE 0
+#endif
 
 #endif


    Holger>    -> add stm32e756.h to cm3\boards:

Please provide configuration files for these boards too.

Holger, sending patches and not verbal description of what to change will
make things clearer and easier for me.

Bye
-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 1623569 ------- Fax. 06151 1623305 ---------


More information about the En-Nut-Discussion mailing list