Come si astragga HAL nello sviluppo basato su test embedded?

2

Recentemente ho letto il tema dello sviluppo guidato dai test e ho deciso di provarlo con un sensore di cui ho bisogno. Il sensore utilizza l'interfaccia SPI e implementerò questo driver sul processore STM32F415 con l'aiuto di CubeMX per la generazione del progetto. Dopo aver generato il progetto, ho accesso alle funzioni HAL SPI come questa:

HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)

Creerei un file di intestazione chiamato 'sensor_hall.h', inserisco questa dichiarazione di funzione SPI e poi creo una simulazione di questa intestazione usando CMock.

Le mie domande sono, è un approccio valido? Dovrei introdurre più astrazione a questo? E come affrontare il primo argomento, puntatore alla struttura SPI quando si prende in giro?

    
posta hbrezak 03.08.2018 - 16:25
fonte

1 risposta

2

I tuoi istinti sono corretti e stai proponendo un approccio valido. Non c'è bisogno di aggiungere più astrazione nel mix qui.

Supponendo che ci sia anche una funzione HAL_SPI_ * per ottenere (un puntatore a) una spi struct, puoi usare una versione specifica di una struttura spi che contiene membri utili per i tuoi mock.

Se la spi struct deve essere dichiarata direttamente dal codice client (il tuo driver del sensore), allora dovrei solo verificare nei mock che lo stesso puntatore è passato in modo coerente.

    
risposta data 03.08.2018 - 17:58
fonte

Leggi altre domande sui tag