fatfs save to file emulation
This commit is contained in:
parent
38e7b72b95
commit
0fcde7d33a
@ -1 +1 @@
|
|||||||
Subproject commit bf08fc69ff21c28482ade1eca086867e619b7fea
|
Subproject commit 8a099f5c215424ff34ceafaaa35615ec0fbeb685
|
30
fatfs.c
30
fatfs.c
@ -1,5 +1,6 @@
|
|||||||
#include "fatfs.h"
|
#include "fatfs.h"
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
FRESULT f_open (
|
FRESULT f_open (
|
||||||
@ -7,8 +8,21 @@ FRESULT f_open (
|
|||||||
const TCHAR* path, /* Pointer to the file name */
|
const TCHAR* path, /* Pointer to the file name */
|
||||||
BYTE mode /* Access mode and file open mode flags */
|
BYTE mode /* Access mode and file open mode flags */
|
||||||
){
|
){
|
||||||
printf("file open try\n");
|
FILE* f;
|
||||||
return FR_NO_FILE;
|
printf("mode %d\n", mode);
|
||||||
|
if(mode & FA_READ)
|
||||||
|
f = fopen(path, "r");
|
||||||
|
else if(mode & FA_WRITE && mode & FA_OPEN_ALWAYS)
|
||||||
|
f = fopen(path, "w+");
|
||||||
|
else
|
||||||
|
printf("Unimplemented mode");
|
||||||
|
if(f == NULL){
|
||||||
|
printf("errno %d\n",errno);
|
||||||
|
return FR_NO_FILE;
|
||||||
|
}
|
||||||
|
*fp = f;
|
||||||
|
|
||||||
|
return FR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
FRESULT f_read (
|
FRESULT f_read (
|
||||||
@ -17,15 +31,15 @@ FRESULT f_read (
|
|||||||
UINT btr, /* Number of bytes to read */
|
UINT btr, /* Number of bytes to read */
|
||||||
UINT* br /* Pointer to number of bytes read */
|
UINT* br /* Pointer to number of bytes read */
|
||||||
){
|
){
|
||||||
printf("file read try\n");
|
*br = fread(buff, 1, btr, *fp);
|
||||||
return FR_NO_FILE;
|
return FR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
FRESULT f_close (
|
FRESULT f_close (
|
||||||
FIL *fp /* Pointer to the file object to be closed */
|
FIL *fp /* Pointer to the file object to be closed */
|
||||||
){
|
){
|
||||||
printf("file close try\n");
|
fclose(*fp);
|
||||||
return FR_NO_FILE;
|
return FR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
FRESULT f_write (
|
FRESULT f_write (
|
||||||
@ -34,6 +48,6 @@ FRESULT f_write (
|
|||||||
UINT btw, /* Number of bytes to write */
|
UINT btw, /* Number of bytes to write */
|
||||||
UINT* bw /* Pointer to number of bytes written */
|
UINT* bw /* Pointer to number of bytes written */
|
||||||
){
|
){
|
||||||
printf("file write try\n");
|
*bw = fwrite(buff, 1, btw, *fp);
|
||||||
return FR_NO_FILE;
|
return FR_OK;
|
||||||
}
|
}
|
||||||
|
5
fatfs.h
5
fatfs.h
@ -1,5 +1,6 @@
|
|||||||
typedef struct {
|
#include <stdio.h>
|
||||||
} FIL;
|
|
||||||
|
typedef FILE* FIL;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
FR_OK = 0, /* (0) Succeeded */
|
FR_OK = 0, /* (0) Succeeded */
|
||||||
|
3
main.c
3
main.c
@ -32,6 +32,7 @@ TIM_HandleTypeDef htim5;
|
|||||||
pse_unit pse_units[PSE_UNITS_NUM];
|
pse_unit pse_units[PSE_UNITS_NUM];
|
||||||
pse_syringe pse_syringes[PSE_UNITS_NUM];
|
pse_syringe pse_syringes[PSE_UNITS_NUM];
|
||||||
pse_home_display pse_home_displays[PSE_UNITS_NUM];
|
pse_home_display pse_home_displays[PSE_UNITS_NUM];
|
||||||
|
pse_stepper_status pse_steppers_status[PSE_UNITS_NUM];
|
||||||
|
|
||||||
enum steppers_axis{PSE_X_STEPPER, PSE_Y_STEPPER, PSE_Z_STEPPER, PSE_E_STEPPER, PSE_STEPPER_NUM};
|
enum steppers_axis{PSE_X_STEPPER, PSE_Y_STEPPER, PSE_Z_STEPPER, PSE_E_STEPPER, PSE_STEPPER_NUM};
|
||||||
pse_stepper_conf pse_stepper_confs[PSE_STEPPER_NUM] = {
|
pse_stepper_conf pse_stepper_confs[PSE_STEPPER_NUM] = {
|
||||||
@ -120,7 +121,7 @@ int main(int argc, char** argv){
|
|||||||
lv_label_set_text(cursor, "A");
|
lv_label_set_text(cursor, "A");
|
||||||
lv_indev_set_cursor(my_indev, cursor);
|
lv_indev_set_cursor(my_indev, cursor);
|
||||||
|
|
||||||
load_units(pse_units, pse_syringes, pse_stepper_confs, pse_home_displays, PSE_UNITS_NUM, 0);
|
load_units(pse_units, pse_syringes, pse_stepper_confs, pse_steppers_status, pse_home_displays, PSE_UNITS_NUM, 0);
|
||||||
Home_Screen_Gen(pse_units, PSE_UNITS_NUM, false);
|
Home_Screen_Gen(pse_units, PSE_UNITS_NUM, false);
|
||||||
|
|
||||||
pthread_t tickThread;
|
pthread_t tickThread;
|
||||||
|
@ -47,7 +47,7 @@ static void* tim_handler(void* arg){
|
|||||||
int backlog = nb_exec - exec_counter;
|
int backlog = nb_exec - exec_counter;
|
||||||
if(backlog > 10)
|
if(backlog > 10)
|
||||||
printf("timer simulation lagging behind (%d ticks)\n", backlog);
|
printf("timer simulation lagging behind (%d ticks)\n", backlog);
|
||||||
while(backlog > 0){
|
while(backlog > 0 && htim->started){
|
||||||
HAL_TIM_PeriodElapsedCallback(htim);
|
HAL_TIM_PeriodElapsedCallback(htim);
|
||||||
exec_counter++;
|
exec_counter++;
|
||||||
backlog = nb_exec - exec_counter;
|
backlog = nb_exec - exec_counter;
|
||||||
|
@ -10,7 +10,7 @@ typedef struct {
|
|||||||
typedef struct{
|
typedef struct{
|
||||||
uint16_t presc;
|
uint16_t presc;
|
||||||
uint16_t period;
|
uint16_t period;
|
||||||
uint8_t started;
|
volatile uint8_t started;
|
||||||
} TIM_HandleTypeDef;
|
} TIM_HandleTypeDef;
|
||||||
typedef int HAL_StatusTypeDef;
|
typedef int HAL_StatusTypeDef;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user