一、禁止列印
把裡面的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....