我的项目需要将“Top”输出重定向到文件中。
我正在运行几个应用程序。当我在 telnet 上打开 top 时,我得到了我的应用程序之一的完整路径。看起来像下面这样
2079 1952 root R 12296 2% 0% -s=1 -PrjPath="/usr/local/Myproject/Application" -stgMode=1
Run Code Online (Sandbox Code Playgroud)
但是,当我使用以下命令将输出重定向到文件时,它会被截断。
命令:
tope -b -n1
Run Code Online (Sandbox Code Playgroud)
输出:
2079 1952 root R 12296 2% 0% -s=1 -PrjPath="/usr/local/Myproject/Appl
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么它被截断?怎么才能满。
以下是我的环境。嵌入式Linux内核v2.6.29。busyboxy v1.10.4
“top”命令是 busybox 的一部分。
预先感谢 Bhargav Vyas
I tried to use arm-linux-gnueabihf-g++ compiler (from g++-arm-linux-gnueabihf package) to compile simple program with lambda expressions, with -std=c++0x switch. It works. Does anybody have experience using C++0x features with this compiler? I want to know, whether this support is reliable and safe for use.
The package is from Ubuntu repository, OS is updated (12.04 32 bits). Version: arm-linux-gnueabihf-g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
我有一个有点爆炸的代码,它允许我通过 SPI 线发送大约 4 兆的数据。它的嵌入式代码用于使用 Linux 内核的自定义硬件。
问题是这需要很长时间才能完成(4 小时),这很可能是因为内核正在做更多的事情。基本上我的代码是这样的(aprox):
unsigned char data=0xFF;
BB_SPI_Init();
SPI_start();//activates chipselect(enable)
for(i=0;i<8;i++){
if(data & 0x80){
gpio_set_value(SPI_MOSI,1);
}else{
gpio_set_value(SPI_MOSI,0);
}
//send pulse clock
gpio_set_value(SPI_CLK,0);
gpio_set_value(SPI_CLK,1);
data<<=1;
}
SPI_stop();//deactivates chipselect(disable)
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的问题,但我注意到如果我使用 write 将数据发送到 linux gpio 处理程序/sys/class/gpio/gpioXX/value(其中 XX 是任何 gpio 编号),则需要 4 小时。但是,如果我fwrite()用于发送到同一台设备,则需要 3 个小时。但是,如果您write()仅用于启用(SPI_stop()和 SPI_ start())并fwrite()用于发送到 MISO、CLK,它只需要 1 小时 30 分钟。
那么,以此为基础,有人可以向我解释这是怎么发生的吗?我的想象说这是处理线程的方式,并且在每个软件周期中它解析 2 个线程(fwrite()和write()),如果只是使用的函数之一,但现在我仍在调查,有人可以让我知道任何类型的信息? 有没有更好的方法来处理这个问题?
仅供参考 无法使用内核驱动程序 spi,因为硬件已连接到 gpios,使用 bit bang …
在第一个printf()程序打破之后,甚至没有到达下一个程序printf().
void UART_rx(void) {
char rx_buffer[256];
int rx_length = read(uart_filestream, (void*) rx_buffer, sizeof(rx_buffer));
if(rx_length > 0) {
printf("%s", rx_buffer);
printf(" ok");
rx_buffer[12] = '\0';
printf(" ok");
char str_id[4];
char *start;
start = strchr(rx_buffer, ',');
start++;
strcpy(str_id,start);
int id;
id = atoi(str_id);
printf("Liczba typu int: %d, oraz jako ciag znakow: %s\n", id, str_id);
}
}
Run Code Online (Sandbox Code Playgroud)
问题出在哪里?
我正在尝试在设备模式下为单个 USB 设备控制器端口添加 uvc 和大容量存储。我正在使用 configfs 来完成工作。
任何人都可以告诉如何做到这一点。
问候, GBiradar
我需要在 USB 内核模块中添加一个短暂的延迟,以避免在小型嵌入式 Linux 设备启动时出现极其罕见的内核恐慌。有问题的代码如下。如果我在代码中添加一个 prink,该设备会成功运行一整夜,而之前它曾经失败过。我想添加一个小的延迟,但 usleep_range 和 msleep 会导致内核回溯“在原子时调度”。如何在不睡觉的情况下在这部分代码中添加延迟?是一个while循环来做到这一点吗?
usb_hub_for_each_child(udev, chix, childdev) {
printk(KERN_ERR "r8a66597: Start USB Discover\n");
//usleep_range(10000, 11000);
//preempt_disable();
//msleep(1);
collect_usb_address_map(childdev, map);
//usleep_range(10000, 11000);
printk(KERN_ERR "r8a66597: Stop USB Discover\n");
//msleep(1);
//preempt_enable();
}
Run Code Online (Sandbox Code Playgroud) linux kernel linux-device-driver linux-kernel embedded-linux
我对linux编程比较陌生.我想知道exec()调用后的函数是否fork()会导致父进程中的数据丢失.
我是嵌入式系统上 Linux 编程的新手。我想了解更多关于嵌入式引导加载程序和 U-boot。我的主要问题无疑是通用的,但我试图了解 U-boot 如何准确地找到 Linux 内核。
更具体地说,我使用的是 BeagleBone Black。我有一个 SD 卡分区如下(取自在线示例),一个包含 MLO + U-Boot 的 FAT32 分区,一个包含内核 + 设备树的 EXT4 分区和另一个包含 rootfs 的 EXT4 分区。
我知道 ROM 主引导加载程序首先加载,在 FAT 分区中定位 MLO 文件,然后将控制权传递给 U-Boot。
U-Boot 如何最终准确定位内核?这和uEnv.txt启动配置文件有关吗?我知道 U-Boot 有一个学习曲线,需要一些阅读,但只是为了提前获得一些知识。
如果我更改 SD 卡映像并放置更多分区并尝试从它启动,而内核在不同的分区上,现在会发生什么?我是否需要特别告诉 U-Boot 在哪里可以找到内核,或者它会一直搜索直到找到它?
linux 系统调用 mmap(2) 和 posix mmap(3) 函数有什么区别?浏览源代码时如何区分使用的是哪一个,因为它们的头文件是一样的。具体见下。
我在 Ubuntu 上运行。我认为您使用的操作系统无关紧要。手册页确实确实没有提供太多有用的信息。
根据 Jörg W Mittag 的回复,我认为当我浏览源代码时 mmap 必须是 posix 函数。但我想知道为什么我在使用 mmamp(3) 函数时不需要显式链接到 posix 库。我的意思是编译源代码时不需要额外的链接标志。
根据Faschingbauer的回复,如果我们得出没有实现posix mmap的结论,就会出现一些问题。你看,实现了一些posix函数?例如,shm_opn?sem_open,mq_open?。同时?有相应的具有相同的功能(例如,shmget,semget,msgget)。如何解释?至少,我认为一些posix功能是由linux实现的。
#log for "man 2 mmap"
MMAP(2) Linux Programmer's Manual
NAME
mmap, munmap - map or unmap files or devices into memory
SYNOPSIS
#include <sys/mman.h>
#log for "man 3 mmap"
MMAP(3POSIX) POSIX Programmer's Manual
PROLOG
This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (consult the corresponding …Run Code Online (Sandbox Code Playgroud) embedded-linux ×10
linux ×6
linux-kernel ×3
c ×2
u-boot ×2
arm ×1
bitstream ×1
bootloader ×1
c++ ×1
c++11 ×1
difference ×1
exec ×1
fork ×1
kernel ×1
partition ×1
posix ×1
printf ×1
spi ×1
top-command ×1
ubuntu ×1
uvc ×1