⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shell.c

📁 smp860运动控制器USB驱动,对从事数控技术开发人员非常有用
💻 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 + -