static void s3c_serial_putc(struct console_device *cdev, char c)
{
struct s3c_uart *priv = to_s3c_uart(cdev);
void __iomem *base = priv->regs;
/*
char bStatus = 0;
//* Wait for Tx FIFO not full
while (!(readl(base + UTRSTAT) & 0x2))
{
;
if(readl((void*)0x50000008) == 0x07)
s3c_gpio_mode(GPB5_GPIO | GPIO_OUT | GPIO_VAL(0));
if(readl((void*)0x50000000) == 0x03)
s3c_gpio_mode(GPB6_GPIO | GPIO_OUT | GPIO_VAL(0));
if(readl((void*)0x50000004) == 0x305)
s3c_gpio_mode(GPB8_GPIO | GPIO_OUT | GPIO_VAL(0));
s3c_gpio_mode(GPB10_GPIO | GPIO_OUT | GPIO_VAL(bTx));
mdelay(1000);
bTx =~bTx;
}
writeb(c, base + UTXH);
*/
}
移植barebox,烧写到nandflash后,怎么发现(!(readl(base + UTRSTAT) & 0x2)) 一直是"真",退不出这个while呢?
if (IS_ENABLED(CONFIG_COMMAND_SUPPORT)) {
pr_info("running /env/bin/init...\n");
if (!stat("/env/bin/init", &s)) {
run_command("source /env/bin/init", 0);
} else {
pr_err("/env/bin/init not found\n");
}
}
如果选中“Compile in default environment "这个,执行到上面这段代码,程序就不往下执行了?
请问有碰到过这两个个现象么?
我将上面这两行代码注释掉,就能执行到
for (;;)
{
s3c_gpio_mode(GPB0_GPIO | GPIO_OUT | GPIO_VAL(0));
barebox_main();
}
把蜂鸣器 关掉。