📄 shell.c
字号:
#include "../inc/def.h"
#include "44b.h"
#include "../inc/config.h"
#include "../inc/board.h"
#include "../inc/utils.h"
#include "../inc/shell.h"
void SetParams(void);
static unsigned int BaudSet[] = {4800, 9600, 19200, 38400, 57600, 115200, 0};
static EnvParams Env;
extern U32 NandFlashSize;
struct Partition *pNandPart = Env.NandPartition;
typedef int (*cmdproc)(int argc, char *argv[]);
typedef struct {
char *cmd;
char *hlp;
cmdproc proc;
}CMD_STRUC;
int LoadEnv()
{
int i;
#ifdef SAVE_ENV_IN_NAND
NFSearchParams((char *)&Env);
#else
NorFlashRead((char *)&Env, (char *)(BIOS_ENV_ADDR), sizeof(Env));
#endif
if(strncmp((const char *)Env.flag, "params", 7))
return -1;
SetSysClockPara(Env.clk_para);
for(i=0; BaudSet[i]; i++)
if(Env.baud==BaudSet[i])
break;
if(!BaudSet[i])
Env.baud = DEFAULT_SERIAL_BAUD;
SerialSwitch(Env.current_uart);
SerialChgBaud(Env.baud);
if(Env.prog_s_addr&0x3)
Env.prog_s_addr = ROM_BASE+SIZE_64K;
if(Env.prog_r_addr&0x3)
Env.prog_r_addr = DFT_DOWNLOAD_ADDR;
Env.boot_params[255] = 0;
return 0;
}
void DftEnvInit(void)
{
memset(&Env, 0, sizeof(Env));
memcpy(Env.flag, "params", 8);
Env.nic_cfg.ip = DEFAULT_IP_ADDR;
// Env.nic_cfg.mask = DEFAULT_IP_MASK;
// Env.nic_cfg.gate = DEFAULT_IP_ADDR;
Env.baud = DEFAULT_SERIAL_BAUD;
Env.current_uart = DEFAULT_SERIAL_PORT;
GetSysClockPara(Env.clk_para);
Env.prog_s_addr = SIZE_64K;
Env.prog_r_addr = DFT_DOWNLOAD_ADDR;
Env.NandPartition[0].size = 0;
Env.saved_in = 0; //use nor flash, nointrd
SerialSwitch(Env.current_uart);
SerialChgBaud(Env.baud);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -