• R/O
  • SSH

mcuhal.arm: Commit

самопильный ХАЛ над библиотекой milandr SPL. позиционируется наличие порта порт на STM32 SPL.


Commit MetaInfo

Revisión1054648fa1b755a13e90f03ebf29688c945580c4 (tree)
Tiempo2022-06-27 02:24:09
Autoralexrayne <alexraynepe196@gmai...>
Commiteralexrayne

Log Message

!hal: warns typo

Cambiar Resumen

Diferencia incremental

diff -r 7cf4d55cde72 -r 1054648fa1b7 flash_hal.c
--- a/flash_hal.c Sun Jun 26 20:21:29 2022 +0300
+++ b/flash_hal.c Sun Jun 26 20:24:09 2022 +0300
@@ -31,9 +31,10 @@
3131 POSSIBILITY OF SUCH DAMAGE. *
3232 */
3333
34+#include <string.h>
3435 #include "flash_hal.h"
3536 #include "ptx.h"
36-#include <string.h>
37+#include "OsProcess.h"
3738
3839
3940 /////////////////////////////////////////////////////////////////////////////////
@@ -108,9 +109,11 @@
108109 this->info = x;
109110 this->_sec_size = flashchip_sec_size(x);
110111 this->_size = flashchip_chip_size(x);
112+ ASSERT(this->_sec_size > 0);
111113 this->sec_width = ctz(this->_sec_size);
112114 }
113115
116+
114117 // \return true - if addr ... + len places in one page
115118 bool flash_in_single_page(const FLASH_Device* this, flash_addr_t addr, unsigned len){
116119 //!!!WARN: этот код работает только со страницами размера 2^n
@@ -263,7 +266,7 @@
263266 // цикл над многими страницами некоторой базовой операции.
264267 // !!! пересечения page границы памяти ведет к заворачиванию адреса
265268 PTResult flash_cycles(FLASH_Device* this){
266- DevResult res = ptOK;
269+ FlashState res = ptOK;
267270 FlashCycling* me = &this->cycx;
268271 struct pt* pt = &me->pt;
269272
@@ -280,7 +283,7 @@
280283 if (!flash_is_status(res))
281284 PT_RESULT(pt, AS_PTRESULT(res) );
282285 if (!flash_is_ready(res))
283- PT_RESULT(pt, res);
286+ PT_RESULT(pt, AS_PTRESULT(res) );
284287
285288 } //if ((me->len > 0) && (me->cycle_to > 0))
286289
@@ -292,7 +295,7 @@
292295 if (!flash_is_status(res))
293296 PT_RESULT(pt, AS_PTRESULT(res) );
294297 if (!flash_is_ready(res))
295- PT_RESULT(pt, res);
298+ PT_RESULT(pt, AS_PTRESULT(res) );
296299 }
297300 else {
298301 PT_SCHEDULE_RESULT_WHILE( pt, res, this->flush(this) );
@@ -310,8 +313,8 @@
310313 trace_flash_pause_twist();
311314
312315 // отдам процессор другим ниткам
313- process_post_pause();
314- PT_YIELD(pt);
316+ PT_PAUSE(pt);
317+ //PT_YIELD(pt);
315318 }
316319 }
317320 }
@@ -408,18 +411,24 @@
408411 }
409412
410413 DevResult flash_bind_dummy(FLASH_Device* this){
414+ (void)this;
411415 return DEV_NOT_IMPLEMENTED;
412416 }
413417
414418 PTResult flash_flush_dummy(FLASH_Device* this){
419+ (void)this;
415420 return ptOK;
416421 }
417422
418423 PTResult flash_protect_sectors_dummy(FLASH_Device* this, flash_addr_t addr, unsigned len, bool onoff){
424+ (void)this; (void)addr; (void)len; (void)onoff;
419425 return ptOK;
420426 }
421427
422-DevResult flash_select_addr_dummy(FLASH_Device* this, flash_addr_t addr){ return DEV_OK; }
428+DevResult flash_select_addr_dummy(FLASH_Device* this, flash_addr_t addr){
429+ (void)this; (void)addr;
430+ return DEV_OK;
431+}
423432
424433
425434 void flash_init(FLASH_Device* this){
diff -r 7cf4d55cde72 -r 1054648fa1b7 flash_hal.h
--- a/flash_hal.h Sun Jun 26 20:21:29 2022 +0300
+++ b/flash_hal.h Sun Jun 26 20:24:09 2022 +0300
@@ -54,6 +54,9 @@
5454
5555
5656 typedef uint32_t flash_addr_t;
57+//typedef uint64_t flashsize_t;
58+typedef flash_addr_t flashsize_t;
59+
5760 typedef flash_addr_t flash_page_t;
5861 typedef flash_page_t flash_sector_t;
5962
@@ -232,7 +235,6 @@
232235 flash_timeout_t erase_all_ticks;
233236 };
234237 typedef struct FlashChipDescribe FlasChiphDescribe;
235-typedef uint64_t flashsize_t;
236238
237239 static inline
238240 unsigned flashchip_sec_size(const FlasChiphDescribe* x) {return x->page_size * x->nb_pages_in_sector;};
diff -r 7cf4d55cde72 -r 1054648fa1b7 flash_i2c_hal.c
--- a/flash_i2c_hal.c Sun Jun 26 20:21:29 2022 +0300
+++ b/flash_i2c_hal.c Sun Jun 26 20:24:09 2022 +0300
@@ -59,9 +59,15 @@
5959 #endif
6060
6161
62-DevResult flashi2c_write_enable(FLASH_Device* self, bool onoff){ return DEV_NOT_IMPLEMENTED; }
63-DevResult flashi2c_erase_all(FLASH_Device* self) { return DEV_NOT_IMPLEMENTED; }
64-PTResult flashi2c_erase_sectors(FLASH_Device* self, flash_addr_t sec, unsigned len) { return DEV_NOT_IMPLEMENTED; }
62+DevResult flashi2c_write_enable(FLASH_Device* self, bool onoff){
63+ (void)self; (void)onoff;
64+ return DEV_NOT_IMPLEMENTED;
65+}
66+DevResult flashi2c_erase_all(FLASH_Device* self) { (void)self; return DEV_NOT_IMPLEMENTED; }
67+PTResult flashi2c_erase_sectors(FLASH_Device* self, flash_addr_t sec, unsigned len) {
68+ (void)self; (void)sec; (void)len;
69+ return DEV_NOT_IMPLEMENTED;
70+}
6571
6672
6773
diff -r 7cf4d55cde72 -r 1054648fa1b7 flash_spi_hal.c
--- a/flash_spi_hal.c Sun Jun 26 20:21:29 2022 +0300
+++ b/flash_spi_hal.c Sun Jun 26 20:24:09 2022 +0300
@@ -209,11 +209,13 @@
209209 }
210210
211211 DevResult flashspi_erase_sec(FLASH_Device* self, void* dst, flash_page_t page, unsigned len){
212+ (void)dst;(void)len;
212213 SPIFlash_GenDevice* this = (SPIFlash_GenDevice*)self;
213214 return flashspi_wr_cmd1(self, page, this->CMD_SE);
214215 }
215216
216217 DevResult flashspi_erase_64k(FLASH_Device* self, void* dst, flash_page_t page, unsigned len){
218+ (void)dst;(void)len;
217219 return flashspi_wr_cmd1(self, page, FLASH_CMD_SE_64K);
218220 }
219221
@@ -280,10 +282,12 @@
280282 //////////////////////////////////////////////////////////////////////////////////////////
281283
282284 DevResult eepromspi_erase_all_dummy(FLASH_Device* this){
285+ (void)this;
283286 return DEV_OK;
284287 }
285288
286289 PTResult eepromspi_erase_sectors_dummy(FLASH_Device* self, flash_addr_t sec, unsigned len){
290+ (void)self; (void)sec; (void)len;
287291 return ptOK;
288292 }
289293
@@ -469,12 +473,14 @@
469473 }
470474
471475 DevResult wre_flashspi_erase_sec(FLASH_Device* self, void* dst, flash_page_t page, unsigned len){
476+ (void)dst; (void)len;
472477 SPIFlash_WritableDevice* this = (SPIFlash_WritableDevice*)self;
473478
474479 return wre_flashspi_wr_cmd1(self, page, this->CMD_SE);
475480 }
476481
477482 DevResult wre_flashspi_erase_64k(FLASH_Device* self, void* dst, flash_page_t page, unsigned len){
483+ (void)dst; (void)len;
478484 return wre_flashspi_wr_cmd1(self, page, FLASH_CMD_SE_64K);
479485 }
480486
diff -r 7cf4d55cde72 -r 1054648fa1b7 flash_spi_hal.h
--- a/flash_spi_hal.h Sun Jun 26 20:21:29 2022 +0300
+++ b/flash_spi_hal.h Sun Jun 26 20:24:09 2022 +0300
@@ -80,7 +80,7 @@
8080 SSP_IODevice ssp;
8181
8282 // protected:
83- int CMD_SE; //CMD_SE selected by chip conf
83+ uint8_t CMD_SE; //CMD_SE selected by chip conf
8484
8585 // все сложные операции имеют контекст своей работы, он здесь
8686 union ctx_t {
diff -r 7cf4d55cde72 -r 1054648fa1b7 ssp_hal.c
--- a/ssp_hal.c Sun Jun 26 20:21:29 2022 +0300
+++ b/ssp_hal.c Sun Jun 26 20:24:09 2022 +0300
@@ -23,7 +23,7 @@
2323 //////////////////////////////////////////////////////////////////////////////////////
2424 /// SSP_IOPort API
2525
26-#include "sys/process.h"
26+#include "OsProcess.h"
2727
2828 void ssp_signal_to_me(SSP_IOPort* this){
2929 this->msg_signal = PROCESS_CURRENT();
@@ -48,7 +48,7 @@
4848 return io->wait(io, &this->ssp_msg, to);
4949 };
5050
51-void sspio_msg_assign_buf(SSP_Client* this, size_t words){
51+void sspio_msg_assign_buf(SSP_Client* this, uint16_t words){
5252 this->ssp_msg.dst = this->ssp_buf;
5353 this->ssp_msg.src = this->ssp_buf;
5454 this->ssp_msg.word_count = words;
@@ -112,7 +112,7 @@
112112
113113 if (wok==ptOK)
114114 return DEV_OK;
115- return wok; //DEV_NOK;
115+ return (DevResult)wok; //DEV_NOK;
116116 }
117117
118118
@@ -123,20 +123,20 @@
123123
124124 // функции настройки ssp_msg
125125 inline static
126-void msg_bytes(SSP_IODevice* this, void *data, const void *src, size_t words){
126+void msg_bytes(SSP_IODevice* this, void *data, const void *src, unsigned words){
127127 sspio_msg_assign_head(&this->io, NULL, 0); // cleanup head
128- sspio_msg_assign(&this->io, data, src, words);
128+ sspio_msg_assign(&this->io, data, src, (uint16_t)words);
129129 };
130130
131131 // функции настройки ssp_msg
132132 inline static
133-void msg_data_bytes(SSP_IODevice* this, void *data, const void *src, size_t words){
134- sspio_msg_assign(&this->io, data, src, words);
133+void msg_data_bytes(SSP_IODevice* this, void *data, const void *src, unsigned words){
134+ sspio_msg_assign(&this->io, data, src, (uint16_t)words);
135135 };
136136
137137 inline static
138-void msg_head_bytes(SSP_IODevice* this, const void *src, size_t words){
139- sspio_msg_assign_head(&this->io, src, words);
138+void msg_head_bytes(SSP_IODevice* this, const void *src, int words){
139+ sspio_msg_assign_head(&this->io, src, (uint8_t)words);
140140 };
141141
142142 // return adress bytes adjusted by adress style
@@ -218,7 +218,7 @@
218218 address = bswap32(address);
219219 }
220220 this->io.ssp_words[0] = (address << 8) | cmd;
221- this->io.ssp_buf[5] = (address>>24);
221+ this->io.ssp_buf[5] = (uint8_t)(address>>24);
222222 msg_bytes(this, NULL, this->io.ssp_buf, 5);
223223 return sspdev_trx(this);
224224 }
@@ -291,7 +291,7 @@
291291 address = bswap32(address);
292292 }
293293 this->io.ssp_words[0] = (address << 8) | cmd;
294- this->io.ssp_buf[5] = (address>>24);
294+ this->io.ssp_buf[5] = (uint8_t)(address>>24);
295295 }
296296 }
297297
diff -r 7cf4d55cde72 -r 1054648fa1b7 ssp_hal.h
--- a/ssp_hal.h Sun Jun 26 20:21:29 2022 +0300
+++ b/ssp_hal.h Sun Jun 26 20:24:09 2022 +0300
@@ -73,53 +73,53 @@
7373 enum SSPModeStyleID{
7474 // Полярность линии синхроимпульсов. Если флаг не задан, то в режиме ожидания
7575 // линия переводится в низкий уровень; если задан, то в высокий.
76- SSP_msCPOL = 1
77- , SSP_msCLKHI = SSP_msCPOL, SSP_msCLKLO = 0
76+ SSP_msCPOL = 1u
77+ , SSP_msCLKHI = SSP_msCPOL, SSP_msCLKLO = 0u
7878 // Выбор фронта синхроимпульса, по которому осуществляется выборка данных.
7979 // Если CPOL не задан, то при заданном CPHA - по заднему, при незаданном - по
8080 // переднему. Если CPOL задан, то при заданном CPHA - по переднему, при
8181 // незаданном - по заднему.
82- , SSP_msCPHA = 2
83- , SSP_msCLKFALL = SSP_msCPHA, SSP_msCLKRISE = 0
82+ , SSP_msCPHA = 2u
83+ , SSP_msCLKFALL = SSP_msCPHA, SSP_msCLKRISE = 0u
8484 // Выбор порядка следования бит на линиях данных. Если флаг не задан, то
8585 // первый передаётся старший бит, иначе младший бит.
8686 // !!! При несовпадении этого порядка, с поддерживаемым устройством,
8787 // драйвер может попробовать инвертировать порядок в исходных отсылаемых/принимаемых
8888 // данных
89- , SSP_msENDIAN = 4
89+ , SSP_msENDIAN = 4u
9090 , SSP_msLSB_FIRST = SSP_msENDIAN
91- , SSP_msMSB_FIRST = 0
91+ , SSP_msMSB_FIRST = 0u
9292
9393 // Поведение линии выбора устройства после передачи сообщения. Если флаг не
9494 // задан, то линия переходит в неактивное состояние автоматически. Иначе
9595 // остаётся активным до передачи сообщения, в поле mode которого будет
9696 // отсутствовать этот флаг.
97- , SSP_msCS_HOLD = 8
97+ , SSP_msCS_HOLD = 8u
9898
9999 //маска режима SPI
100- , SSP_msMASK = 0xff
100+ , SSP_msMASK = 0xffu
101101
102102 //селектор CS абонента
103- , SSP_msCS_Msk = 0xff00, SSP_msCS_Pos = 8
104- , SSP_msCS1 = 1 << SSP_msCS_Pos
103+ , SSP_msCS_Msk = 0xff00u, SSP_msCS_Pos = 8u
104+ , SSP_msCS1 = 1u << SSP_msCS_Pos
105105 // CS == 0 - использую чтобы снять все активные CS
106- , SSP_msCS_NONE = 0
106+ , SSP_msCS_NONE = 0u
107107 // CS == ~0 - нереальный CS, не управляет линией CS,
108108 , SSP_msCS_KEEP = SSP_msCS_Msk
109109
110110 // количество бит в слове
111- , SSP_msNB_Msk = 0xff0000, SSP_msNB_Pos = 16
112- , SSP_msNB_KEEP = 0
113- , SSP_msNB8 = (8<<SSP_msNB_Pos)
114- , SSP_msNB16 = (16<<SSP_msNB_Pos)
111+ , SSP_msNB_Msk = 0xff0000u, SSP_msNB_Pos = 16u
112+ , SSP_msNB_KEEP = 0u
113+ , SSP_msNB8 = (8u<<SSP_msNB_Pos)
114+ , SSP_msNB16 = (16u<<SSP_msNB_Pos)
115115
116116
117117 /// @brief SSP I2C specific flags.
118118 // sspdev_touch use empty msg - with no send/recv data.
119119 // this flag choose what i2c SLA operation use - RD/WR
120- , SSPI2C_TOUCH = 1,
121- SSPI2C_TOUCH_RD = 0,
122- SSPI2C_TOUCH_WR = 1,
120+ , SSPI2C_TOUCH = 1u,
121+ SSPI2C_TOUCH_RD = 0u,
122+ SSPI2C_TOUCH_WR = 1u,
123123
124124 };
125125 static inline unsigned ssp_as_msNB(unsigned bits) {return (bits << SSP_msNB_Pos)& SSP_msNB_Msk;};
@@ -129,7 +129,7 @@
129129
130130 enum SSPSpeedID{
131131 // \ value == 0 , not affect speed
132- SSP_speedKEEP = 0
132+ SSP_speedKEEP = 0u
133133 , SSP_speedMAX = ~0u
134134 };
135135
@@ -171,7 +171,7 @@
171171
172172 // функции настройки ssp_msg
173173 static inline
174-void sspmsg_assign(SSPMessage* this, void *data, const void *src, size_t words){
174+void sspmsg_assign(SSPMessage* this, void *data, const void *src, uint16_t words){
175175 this->dst = data;
176176 this->src = src;
177177 this->word_count = words;
@@ -179,7 +179,7 @@
179179
180180 // функции настройки ssp_msg
181181 static inline
182-void sspmsg_assign_head(SSPMessage* this, const void *head, size_t words){
182+void sspmsg_assign_head(SSPMessage* this, const void *head, uint8_t words){
183183 this->head = head;
184184 this->head_count = words;
185185 };
@@ -322,7 +322,7 @@
322322 if (onoff)
323323 this->ssp_msg.mode |= SSP_msCS_HOLD;
324324 else
325- this->ssp_msg.mode &= ~SSP_msCS_HOLD;
325+ this->ssp_msg.mode &= (unsigned)~SSP_msCS_HOLD;
326326 };
327327
328328
@@ -335,7 +335,7 @@
335335
336336 // функции настройки ssp_msg
337337 static inline
338-void sspio_msg_assign(SSP_Client* this, void *data, const void *src, size_t words){
338+void sspio_msg_assign(SSP_Client* this, void *data, const void *src, uint16_t words){
339339 this->ssp_msg.dst = data;
340340 this->ssp_msg.src = src;
341341 this->ssp_msg.word_count = words;
@@ -343,12 +343,12 @@
343343
344344 // функции настройки ssp_msg
345345 static inline
346-void sspio_msg_assign_head(SSP_Client* this, const void *head, size_t words){
346+void sspio_msg_assign_head(SSP_Client* this, const void *head, uint8_t words){
347347 this->ssp_msg.head = head;
348348 this->ssp_msg.head_count = words;
349349 };
350350
351-void sspio_msg_assign_buf(SSP_Client* this, size_t words);
351+void sspio_msg_assign_buf(SSP_Client* this, uint16_t words);
352352
353353 // функции отправки ssp_msg -> io()
354354 // @return - bytes sent, msg->word_count
Show on old repository browser