關閉 uart0 讓出給其它外設使用

2021-07-24 09:00:56 字數 4188 閱讀 1582

一、禁止列印

把裡面的cmdline傳參的printk.disable_uart修改為printk.disable_uart=1

#ifdef user_build

sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1");

#else

- sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=0 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\"");

+ sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1 ddebug_query=\"file *mediatek* +p ; file *gpu* =_\"");

#endif

二、禁止android服務

把system/core/rootdir/init.rc的服務給遮蔽

#service console /system/bin/sh

#  class core

#  console

#disabled

#user shell

#seclabel u:r:shell:s0

#on property:ro.debuggable=1

#    start console             

三、修改cmdline波特率

bootable/bootloader/lk/platform/mt6735/include/platform/mt_reg_base.h

-#define commandline_to_kernel  "console=tty0 console=ttymt3,921600n1 root=/dev/ram vmalloc=496m androidboot.hardware=mt6735 slub_max_order=0 slub_debug=o"

+#define commandline_to_kernel "console=tty0 console=ttymt3,115200n1 root=/dev/ram vmalloc=496m androidboot.hardware=mt6735 slub_max_order=0 slub_debug=o"

四、修改pl、lk 列印口uart0波特率

pl  (可不修改)

bootable/bootloader/preloader/custom/ln1/cust_bldr.mak

+cfg_log_baudrate :=115200
lk (可不修改)

bootable/bootloader/lk/platform/mt6735/uart.c

-#define config_baudrate                921600

+#define config_baudrate 115200

五、禁止核心列印資訊

***_debug_defconfig /***_defconfig

-config_mt_printk_uart_console=y

+# config_mt_printk_uart_console is not set

六、測試

android.mk

local_path := $(call my-dir)

include $(clear_vars)

local_src_files:= readradar.c

local_module := readradar

local_shared_libraries:= libcutils libutils libtinyalsa

local_module_tags := optional

include $(build_executable)

test.c

#include #include #include #include #include #define baudrate        921600  

#define uart_device "/dev/ttymt0"

#define false -1

#define true 0

/**

*@brief 設定串列埠通訊速率

*@param fd 型別 int 開啟串列埠的檔案控制代碼

*@param speed 型別 int 串列埠速度

*@return void

*/

int speed_arr = ;

int name_arr = ;

void set_speed(int fd, int speed)

tcflush(fd,tcioflush);

}

} }

/**

*@brief 設定串列埠資料位,停止位和效驗位

*@param fd 型別 int 開啟的串列埠檔案控制代碼

*@param databits 型別 int 資料位 取值 為 7 或者8

*@param stopbits 型別 int 停止位 取值為 1 或者2

*@param parity 型別 int 效驗型別 取值為n,e,o,,s

*/

int set_parity(int fd,int databits,int stopbits,int parity)

options.c_cflag &= ~csize;

switch (databits) /*設定資料位數*/

switch (parity)

/* 設定停止位*/

switch (stopbits)

/* set input parity option */

if (parity != 'n')

options.c_iflag |= inpck;

tcflush(fd,tciflush);

options.c_cc[vtime] = 5; /* 設定超時15 seconds*/

options.c_cc[vmin] = 100; /* update the options and do it now */

options.c_lflag &= ~(icanon | echo | echoe | isig); /*input*/

options.c_oflag &= ~opost; /*output*/

options.c_cflag &= ~crtscts;

if (tcsetattr(fd,tcsanow,&options) != 0)

return (true);

} int main(int argc, char *argv)

#if 0

if(fcntl(fd,f_setfl,0) < 0)

else

#endif

#if 1

printf("open...\n");

set_speed(fd,baudrate);

if (set_parity(fd,8,1,'n') == false)

#endif

#if 0

printf("reading...\n");

while(1)

#endif

#if 1

printf("write\n");

while(1)

#endif

while(1);

printf("close...\n");

close(fd);

return 0;

}

UART0串列埠程式設計系列之前奏篇

串列埠程式設計之前奏篇 author tiger john website blog.csdn.net tigerjb email jibo.tiger gmail.com update time 2011年1月30日星期日 眾所周知嵌入式系統之間採用通訊方式交換資料,由於各類cpu均整合了uart...

STM32F0微控制器快速入門七 UART中斷操作

1.從輪詢到中斷 很多同學都不喜歡用中斷,而偏愛用輪詢的操作方式。這是不是和我們的天性有關呢?每個人都喜歡一切盡在掌握中,肯定都不喜歡被打斷。我們常常都有這樣的經驗 正在跟別人說一件事,然後突然有個 打進來,call打完後突然記不起來剛才講到哪了!這種糟糕的體驗對我們影響是如此深刻,以至於我們認定機...

Xen 和 KVM 下如何關閉 virbr0

安裝 xen 或安裝 kvm 後都會發現網路介面裡多了乙個叫做 virbr0 的虛擬網路介面 ifconfig virbr0 link encap ethernet hwaddr d2 91 97 b8 3d fc inet addr 192.168.122.1 bcast 192.168.122....