<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/ports/stm32/sdcard.c, branch main</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2019-10-13T15:08:52+00:00</updated>
<entry>
<title>remove ports/stm32</title>
<updated>2019-10-13T15:08:52+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-10-13T15:08:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=fc033bd954a46156d6902392f8ae21ac2872bb1c'/>
<id>urn:sha1:fc033bd954a46156d6902392f8ae21ac2872bb1c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32/irq: Define IRQ priorities directly as encoded hardware values.</title>
<updated>2018-05-02T04:41:02+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-02T04:41:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a03e6c1e05203bb71ebee50af2a41de404b05078'/>
<id>urn:sha1:a03e6c1e05203bb71ebee50af2a41de404b05078</id>
<content type='text'>
For a given IRQn (eg UART) there's no need to carry around both a PRI and
SUBPRI value (eg IRQ_PRI_UART, IRQ_SUBPRI_UART).  Instead, the IRQ_PRI_UART
value has been changed in this patch to be the encoded hardware value,
using NVIC_EncodePriority.  This way the NVIC_SetPriority function can be
used directly, instead of going through HAL_NVIC_SetPriority which must do
extra processing to encode the PRI+SUBPRI.

For a priority grouping of 4 (4 bits for preempt priority, 0 bits for the
sub-priority), which is used in the stm32 port, the IRQ_PRI_xxx constants
remain unchanged in their value.

This patch also "fixes" the use of raise_irq_pri() which should be passed
the encoded value (but as mentioned above the unencoded value is the same
as the encoded value for priority grouping 4, so there was no bug from this
error).
</content>
</entry>
<entry>
<title>stm32/sdcard: Implement BP_IOCTL_SEC_COUNT to get size of SD card.</title>
<updated>2018-04-20T06:09:03+00:00</updated>
<author>
<name>Peter D. Gray</name>
<email>peter@conalgo.com</email>
</author>
<published>2018-04-13T13:26:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9adfd1464495a24c6359ced2db1bd842752f7a79'/>
<id>urn:sha1:9adfd1464495a24c6359ced2db1bd842752f7a79</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Change pin_X and pyb_pin_X identifiers to be pointers to objects.</title>
<updated>2018-03-28T05:29:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-28T05:13:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2dca693c24f9bcadb1e06113848fff620d8088dd'/>
<id>urn:sha1:2dca693c24f9bcadb1e06113848fff620d8088dd</id>
<content type='text'>
Rather than pin objects themselves.  The actual object is now pin_X_obj and
defines are provided so that pin_X is &amp;pin_X_obj.  This makes it so that
code that uses pin objects doesn't need to know if they are literals or
objects (that need pointers taken) or something else.  They are just
entities that can be passed to the map_hal_pin_xxx functions.  This mirrors
how the core handles constant objects (eg mp_const_none which is
&amp;mp_const_none_obj) and allows for the possibility of different
implementations of the pin layer.

For example, prior to this patch there was the following:

    extern const pin_obj_t pin_A0;
    #define pyb_pin_X1 pin_A0
    ...
    mp_hal_pin_high(&amp;pin_A0);

and now there is:

    extern const pin_obj_t pin_A0_obj;
    #define pin_A0 (&amp;pin_A0_obj)
    #define pyb_pin_X1 pin_A0
    ...
    mp_hal_pin_high(pin_A0);

This patch should have minimal effect on board configuration files.  The
only change that may be needed is if a board has .c files that configure
pins.
</content>
</entry>
<entry>
<title>stm32/sdcard: Add H7 SD card support.</title>
<updated>2018-03-28T02:25:00+00:00</updated>
<author>
<name>iabdalkader</name>
<email>i.abdalkader@gmail.com</email>
</author>
<published>2018-03-24T19:23:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b4f814c9b75939a33caa769e87b8d1e9c82227f3'/>
<id>urn:sha1:b4f814c9b75939a33caa769e87b8d1e9c82227f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Consolidate include of genhdr/pins.h to single location in pin.h.</title>
<updated>2018-03-27T09:25:24+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-27T09:25:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6b51eb22c8200124bd1639f542f7757edb82e736'/>
<id>urn:sha1:6b51eb22c8200124bd1639f542f7757edb82e736</id>
<content type='text'>
genhdr/pins.h is an internal header file that defines all of the pin
objects and it's cleaner to have pin.h include it (where the struct's for
these objects are defined) rather than an explicit include by every user.
</content>
</entry>
<entry>
<title>stm32: Use STM32xx macros instead of MCU_SERIES_xx to select MCU type.</title>
<updated>2018-03-16T23:42:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-16T23:42:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e37b8ba5a55c99dbd1e69eb1c99651307b22fd3e'/>
<id>urn:sha1:e37b8ba5a55c99dbd1e69eb1c99651307b22fd3e</id>
<content type='text'>
The CMSIS files for the STM32 range provide macros to distinguish between
the different MCU series: STM32F4, STM32F7, STM32H7, STM32L4, etc.  Prefer
to use these instead of custom ones.
</content>
</entry>
<entry>
<title>stm32/sdcard: Use maximum speed SDMMC clock on F7 MCUs.</title>
<updated>2018-02-01T04:17:18+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-02-01T04:17:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=72ca049de732dc6d8e30385517d835fa7d56e5e0'/>
<id>urn:sha1:72ca049de732dc6d8e30385517d835fa7d56e5e0</id>
<content type='text'>
This will get the SDMMC clock up to 48MHz.
</content>
</entry>
<entry>
<title>stm32/sdcard: Only define IRQ handler if using SDMMC1 peripheral.</title>
<updated>2018-02-01T04:02:04+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-02-01T04:02:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=467a5926bc57549f36055938b8bbf7f9bf0dd101'/>
<id>urn:sha1:467a5926bc57549f36055938b8bbf7f9bf0dd101</id>
<content type='text'>
So that the IRQ can be used by other peripheral drivers if needed.
</content>
</entry>
<entry>
<title>stm32/sdcard: Make SD wait routine more power efficient by using WFI.</title>
<updated>2018-02-01T01:20:45+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-02-01T01:20:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=fed1b4fb56421e8f8a1ee54b2c16296204176bb3'/>
<id>urn:sha1:fed1b4fb56421e8f8a1ee54b2c16296204176bb3</id>
<content type='text'>
Using WFI allows the CPU to sleep while it is waiting, reducing power
consumption.
</content>
</entry>
</feed>
