Tag: raspberry pi

编译内核模块时,“__aeabi_ldivmod”未定义

我正在尝试在raspberry pi上编译一个内核模块(我自己编写)。 我正在目标环境中编译它。 我得到以下输出: make -C /lib/modules/3.12.23-1.20140626git25673c3.rpfr20.armv6hl.bcm2708/build M=/home/harmic/horus/ppminput modules make[1]: Entering directory `/usr/src/kernels/3.12.23-1.20140626git25673c3.rpfr20.armv6hl.bcm2708′ CC [M] /home/harmic/horus/ppminput/ppminput.o Building modules, stage 2. MODPOST 1 modules WARNING: “__aeabi_ldivmod” [/home/harmic/horus/ppminput/ppminput.ko] undefined! CC /home/harmic/horus/ppminput/ppminput.mod.o LD [M] /home/harmic/horus/ppminput/ppminput.ko make[1]: Leaving directory `/usr/src/kernels/3.12.23-1.20140626git25673c3.rpfr20.armv6hl.bcm2708′ 果然,如果我尝试插入模块,我得到: insmod: ERROR: could not insert module ./ppminput.ko: Unknown symbol in module 在syslog中: Sep 2 22:44:26 pidora kernel: [ […]

如何在Raspberry Pi上运行没有操作系统的C程序?

我想尝试将Raspberry Pi用于一些不同的低级嵌入式应用程序。 唯一的问题是,与可用的AVR和PIC微控制器板不同,Raspberry Pi通常运行一个操作系统(如Raspbian),它在所有正在运行的程序中分配CPU时间,并使其对某些实时应用程序不切实际。 我最近了解到,假设你有一个像GRUB一样的bootloader,在x86上运行一个C程序(以内核的forms)只需要很少的实际设置,只需要一个汇编程序来调用main函数和实际的C代码。 有没有办法用Raspberry Pi实现这一目标? 这是学习低级ARM编程的好方法,它已经有一些复杂的外围设备(USB,以太网等)

我如何使用setsockopt(SO_REUSEADDR)?

我在覆盆子pi上运行自己的http服务器。 问题是当我停止程序并重新启动它时,端口不再可用。 有时我在收到大量请求时会遇到同样的问题。 我想使用SO_REUSEADDR,这样即使发生错误我也可以继续使用该端口但是没有运气设置它。 以下是我的代码。 我得到的错误是“绑定时出错:地址已在使用中”。 #include #include #include #include #include #include #include void error(const char *msg) { perror(msg); exit(1); } int main(int argc, char *argv[]) { printf(“Starting Listener\n”); int sockfd, newsockfd, portno; socklen_t clilen; char buffer[256]; struct sockaddr_in serv_addr, cli_addr; int n; if (argc < 2) { fprintf(stderr,"ERROR, no port provided\n"); exit(1); } sockfd […]