You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
2.5 KiB
118 lines
2.5 KiB
#include <errno.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include <buzzer.h>
|
|
#include <console.h>
|
|
#include <gpio.h>
|
|
#include <flash.h>
|
|
#include <ftl.h>
|
|
#include <mufs.h>
|
|
#include <rcc.h>
|
|
#include <rtc.h>
|
|
#include <shell.h>
|
|
|
|
#include <shell/alarm.h>
|
|
#include <shell/boot.h>
|
|
#include <shell/buzzer.h>
|
|
#include <shell/echo.h>
|
|
#include <shell/jtag.h>
|
|
#include <shell/led.h>
|
|
#include <shell/mufs.h>
|
|
#include <shell/rtc.h>
|
|
#include <shell/version.h>
|
|
|
|
struct console *user_con, *admin_con;
|
|
struct shell user_shell, admin_shell;
|
|
|
|
extern struct flash_dev *flash;
|
|
extern struct mufs *mufs;
|
|
extern struct buzzer buzzers[];
|
|
extern size_t nbuzzers;
|
|
|
|
struct cmd user_cmds[] = {
|
|
{ "hi", shell_version },
|
|
{ "buzzer", shell_buzzer },
|
|
{ "led", shell_led },
|
|
{ "reset", shell_alarm },
|
|
{ "cat", shell_cat },
|
|
{ "ls", shell_ls },
|
|
{ "date", shell_date },
|
|
{ "time", shell_time },
|
|
{ "booting", shell_prepare },
|
|
{ NULL, NULL },
|
|
};
|
|
|
|
struct cmd admin_cmds[] = {
|
|
{ "echo", shell_echo },
|
|
#ifdef STM32F1
|
|
{ "jtag", shell_jtag },
|
|
#endif
|
|
{ "buzzer", shell_buzzer },
|
|
{ "led", shell_led },
|
|
{ "reset", shell_alarm },
|
|
{ "flash_probe", shell_flash_probe },
|
|
{ "flash_release", shell_flash_release },
|
|
{ "flash_info", shell_flash_info },
|
|
{ "flash_read", shell_flash_read },
|
|
{ "flash_write", shell_flash_write },
|
|
{ "flash_erase", shell_flash_erase },
|
|
{ "ftl_probe", shell_ftl_probe },
|
|
{ "date", shell_date },
|
|
{ "time", shell_time },
|
|
{ "set_date", shell_set_date },
|
|
{ "set_time", shell_set_time },
|
|
{ "mount", shell_mount },
|
|
{ "umount", shell_unmount },
|
|
{ "format", shell_format },
|
|
{ "mkdir", shell_mkdir },
|
|
{ "rmdir", shell_rmdir },
|
|
{ "ls", shell_ls },
|
|
{ "stat", shell_stat },
|
|
{ "cat", shell_cat },
|
|
{ "write", shell_write },
|
|
{ "append", shell_append },
|
|
{ "mv", shell_mv, },
|
|
{ "cp", shell_cp, },
|
|
{ "rm", shell_rm, },
|
|
{ NULL, NULL },
|
|
};
|
|
|
|
int main(void)
|
|
{
|
|
size_t i;
|
|
|
|
rcc_init();
|
|
gpio_init();
|
|
rtc_init(NULL);
|
|
|
|
for (i = 0; i < nbuzzers; ++i) {
|
|
buzzer_init(buzzers + i);
|
|
}
|
|
|
|
user_con = console_init(1);
|
|
admin_con = console_init(0);
|
|
|
|
if ((flash = flash_probe())) {
|
|
flash = ftl_mount(flash);
|
|
mufs = mufs_mount(flash);
|
|
} else {
|
|
fprintf(admin_con->fp, "error: unable to probe flash chip.\n");
|
|
}
|
|
|
|
fprintf(user_con->fp, "TBM-dev (built on " BUILD_VERSION ")\n");
|
|
fprintf(admin_con->fp, "TBM-dev (built on " BUILD_VERSION ")\n");
|
|
|
|
shell_init(&user_shell, user_cmds, user_con, "tbm $",
|
|
SHELL_SHOW_EXIT_CODE);
|
|
shell_init(&admin_shell, admin_cmds, admin_con, "tbm #",
|
|
SHELL_SHOW_EXIT_CODE);
|
|
|
|
while (1) {
|
|
shell_parse(&user_shell);
|
|
shell_parse(&admin_shell);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|