summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-04-30 18:57:53 -0700
committerKeith Packard <keithp@keithp.com>2013-05-07 20:08:00 -0700
commitac72d1c298fc553808a8e04a65482d4990f177d7 (patch)
treefaf4932fe2d9efca88b306a2097dc8233a49301f /src
parentdf70e3e87874d80516c6d43cfe745d511d54f206 (diff)
altos: Reduce stack usage of FAT driver and logger
Move some large stack arrays to static storage. Also eliminates some printf error messages which don't seem that useful except for debugging. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/drivers/ao_fat.c19
-rw-r--r--src/drivers/ao_log_fat.c4
2 files changed, 10 insertions, 13 deletions
diff --git a/src/drivers/ao_fat.c b/src/drivers/ao_fat.c
index afd645cd..1a1b8eb0 100644
--- a/src/drivers/ao_fat.c
+++ b/src/drivers/ao_fat.c
@@ -1052,7 +1052,7 @@ static int8_t
_ao_fat_open(char name[11], uint8_t mode)
{
uint16_t entry = 0;
- struct ao_fat_dirent dirent;
+ static struct ao_fat_dirent dirent;
int8_t status;
if (_ao_fat_setup() != AO_FAT_FILESYSTEM_SUCCESS)
@@ -1214,12 +1214,11 @@ ao_fat_map_current(struct ao_file *file, int len, cluster_offset_t *offsetp, clu
offset = file->offset & SECTOR_MASK;
sector = _ao_fat_current_sector(file);
if (sector == 0xffffffff) {
- printf ("invalid sector at offset %d\n", file->offset);
return NULL;
}
buf = _ao_fat_sector_get(sector);
if (!buf)
- printf ("sector get failed. Sector %d. Partition end %d\n", sector, partition_end);
+ return NULL;
if (offset + len < SECTOR_SIZE)
*this_time = len;
else
@@ -1259,7 +1258,6 @@ ao_fat_read(int8_t fd, void *dst, int len)
while (len) {
buf = ao_fat_map_current(file, len, &offset, &this_time);
if (!buf) {
- printf ("map_current failed\n");
ret = -AO_FAT_EIO;
break;
}
@@ -1307,7 +1305,6 @@ ao_fat_write(int8_t fd, void *src, int len)
while (len) {
buf = ao_fat_map_current(file, len, &offset, &this_time);
if (!buf) {
- printf ("map_current failed\n");
ret = -AO_FAT_EIO;
break;
}
@@ -1375,7 +1372,7 @@ int8_t
ao_fat_unlink(char name[11])
{
uint16_t entry = 0;
- struct ao_fat_dirent dirent;
+ static struct ao_fat_dirent dirent;
int8_t ret;
ao_mutex_get(&ao_fat_mutex);
@@ -1492,7 +1489,7 @@ static void
ao_fat_list_cmd(void)
{
uint16_t entry = 0;
- struct ao_fat_dirent dirent;
+ static struct ao_fat_dirent dirent;
int i;
int8_t status;
@@ -1535,10 +1532,10 @@ ao_fat_parse_name(char name[11])
static void
ao_fat_dump_cmd(void)
{
- char name[11];
+ static char name[11];
int8_t fd;
int cnt, i;
- char buf[32];
+ static char buf[32];
ao_fat_parse_name(name);
if (name[0] == '\0') {
@@ -1561,10 +1558,10 @@ ao_fat_dump_cmd(void)
static void
ao_fat_write_cmd(void)
{
- char name[11];
+ static char name[11];
int8_t fd;
int cnt, i;
- char buf[64];
+ static char buf[64];
char c;
int status;
diff --git a/src/drivers/ao_log_fat.c b/src/drivers/ao_log_fat.c
index af77401c..45b67012 100644
--- a/src/drivers/ao_log_fat.c
+++ b/src/drivers/ao_log_fat.c
@@ -27,7 +27,7 @@ static uint8_t log_mutex;
static void
ao_log_open(void)
{
- char name[12];
+ static char name[12];
int8_t status;
sprintf(name,"%04d%02d%02dLOG", 2000 + log_year, log_month, log_day);
@@ -38,7 +38,7 @@ ao_log_open(void)
log_open = 1;
} else if (status == -AO_FAT_ENOENT) {
status = ao_fat_creat(name);
- if (status == AO_FAT_SUCCESS) {
+ if (status >= 0) {
log_fd = status;
log_open = 1;
}