snikeguo commented on issue #16415:
URL: https://github.com/apache/nuttx/issues/16415#issuecomment-2926815162
>Furthermore your proposed simplicity comes with a big cost, which is the
use using dynamic memory allocation. I think should be avoided on a RTOS for
resource-constrained devices.
Actually, it won't. You can take a look at my PR code. If
CONFIG_ARCH_HAVE_SDIO_PREFLIGHT is not defined, the buffer provided by the user
will be used directly. If CONFIG_ARCH_HAVE_SDIO_PREFLIGHT is defined, the
address will be checked first. If the address is aligned, the data will be
transferred directly. If not, an aligned address will be allocated.
```
read( buf,buflen )
{
#ifdef CONFIG_ARCH_HAVE_SDIO_PREFLIGHT
if( dma addr is not align?)
{
new align manager(buflen)
read sector(algin buffer)
}
else
{read sector(buf)}
#else
read sector (buf)
#endif
}
```
If we don't use dynamic memory and POSIX, why are we using NuttX? Wouldn't
it be better to use FreeRTOS or uC/OS? Why would I choose a relatively
heavyweight framework like NuttX?
You can't have your cake and eat it too. Take security and convenience as an
example—they've always been a contradiction.
I believe our goal should be to provide the application layer with as many
convenient interfaces as possible, while ensuring that the interfaces exposed
to the specific chip driver layer are as simple as possible to implement. The
remaining complex tasks should be handled by the NUTTX device driver layer,
which requires individuals with philosophical thinking to tackle.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]