- 博客(74)
- 资源 (20)
- 收藏
- 关注
原创 C语言 标志位/状态位, 清零置一
参考Linux的regmap操作#include<stdio.h>#include<string.h>#include<stdlib.h>#define BITS_PER_LONG 64 // 64 bit CPU//#define BITS_PER_LONG 32 // 32b it CPU#define GENMASK(h, l) (((~0UL) << (l)) & (~0UL >> (BITS_P...
2022-02-24 09:23:55 1291
原创 全志V833芯片的tina系统使用procd作为init启动进程
不知道啥情况,全志把openwrt很多的patch都干掉!!!System init 默认是busybox-init, 如果选择openwrt默认的procd-init,则需要做以下修改;### device/config/chips/v833/configs/default/env.cfg-init=/init-rdinit=/rdinit+init=/etc/preinit+rdinit=### lichee/linux-4.9/init/main.c@@...
2021-02-01 11:01:46 1047
原创 stm32 获取芯片的id型号
=========================================================================xxx.h#ifdef CONFIG_GET_DEVIDtypedef struct stm32 stm32_t;typedef struct stm32_cmd stm32_cmd_t;typedef struct st...
2020-01-11 17:03:27 4711
原创 STM8L151系列 使用定时器计时,全局滴答器jiffes;
IAR软件,使用官方halt库u32 g_counter = 0; // 全局, jiffes 滴答时钟,时间计时器;INTERRUPT_HANDLER(TIM3_UPD_OVF_TRG_BRK_USART3_TX_IRQHandler,21)// 计数器; 50ms 中断一次{// disableInterrupts(); g_counter ++;...
2019-09-04 14:21:47 1322
原创 STM8L151系列 单通道ADC数模转换
IAR软件,使用官方halt库void insertion_sort(u16 a[], u16 length)//插入排序{ int len = length; int temp; int i;//已排好序的序列的下一个元素(待插元素)的下标 int j;//有序序列的末尾下标 for(i = 1;i<len;i++) {...
2019-09-04 10:42:21 3086
原创 STM8L151系列 (OTA) Bootloader功能的开启 和 关闭
IAR软件,使用官方halt库#define OPT_BL_ADDR_L 0x480B#define OPT_BL_ADDR_H 0x480Cvoid enable_ota_action(void){ uint16_t optbl = 0; FLASH_DeInit(); FLASH_Unlock(FLASH_MemType_Data);//解锁EEPRO...
2019-09-04 10:34:27 1149
原创 MT7628/MT7688 SPI Flash 写保护
MT7628 # spi idSPI_REG_OPCODE=0x9f_device id: c2 20 18 0 0MT7628 # spi sr readSPI_REG_OPCODE=0x5sr=0x0MT7628 # spi sr write bctrying write sr=0xbcSPI_REG_OPCODE=0x6SPI_REG_OPCODE=0xbc000001S...
2018-12-03 09:19:14 2055 1
转载 Linux内核网络分层结构
Preface Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计。 Linux内核采用分层结构处理网络数据包。分层结构与网络协议的结构匹配,既能简化数据包处理流程,又便于扩展和维护。 内核网络结构 在Linux内核中,对网络部分按照网络协议层、网络设备层、设备驱动功能层和网络媒介层的分层体
2017-09-18 16:51:56 705
原创 ./tools/mkimage: invalid entry point -n
./tools/mkimage: invalid entry point -nmake: *** [uboot.img] 错误 1运行命令 export LANG="en_US"因为语言是中文的原因;
2017-04-25 17:56:53 1790
转载 (转)和菜鸟一起学linux内核源码之基础准备篇
原文链接:http://blog.csdn.net/eastmoon502136/article/details/8711104 注:以下大部分内容摘自Linux内核编程入门篇和linux内核完全注释 在工作的这段时间,发现我的visio画图熟悉了点点,总喜欢把什么源码啊,结构啊之类的就当作流程图来画来理解,因为对于图,有一个很直观的认识,所以接下去也是以图
2017-04-20 09:53:09 640
原创 ralink/MKT ethtool接口
二:offload的特性mt7621支持gso,tso,sg,gro;不支持ufo,lro;先参考一下IBM的patch: http://www.spinics.net/lists/netdev/msg382179.html主要是完善这个函数指针static const struct net_device_ops ei_netdev_ops = {+// .ndo_f
2017-04-01 14:27:34 1634
原创 wifi加密之 TKIP
1.使用TKIP,由于算法本身限制,仅支持28个客户端。2. TKIP是不太安全的,假如你有一个旧的设备不能连接,那么你就需要选择它。 802.11n标准在40MHz的时候不支持TKIP加密! TKIP加密只支持20MHz; 也就是说300M (2T2R)的wifi路由器, 路由器是由了TKIP加密,那么连接速率只有145M, 不会
2017-03-31 16:44:26 3233
转载 rsa_pkcs1_decrypt( p_rsa, NULL, NULL, RSA_PUBLIC, &olen, o_priv_encrypted, p_priv_decrypted, 1024 )
polarssl-1.3.9/programs/pkey/test/o_p_test.c/* * Test application that shows some PolarSSL and OpenSSL compatibility * * Copyright (C) 2011-2012 Brainspark B.V. * * This file is part o
2017-03-09 21:39:21 1097
原创 openwrt之ubus例子
root@LEDE:/# ubus call test_ubus helloworld '{"id":1,"msg":"hi","array":["a","b"]}'{ "id": 1, "msg": "hi", "shuzu": [ "a", "b" ]
2017-03-08 21:58:23 6054 2
原创 Openwrt之gdb调试
1. 应用层API(用户态)【coredump方法】 路由器: 在路由器/tmp运行命令,使其段错误的时候生成core文件;ulimit -c unlimited; pc: 把 路由器的/tmp/core文件复制到 电脑的openwrt源码编译目录[/home/luo/op](虚拟机/远程服务器) 开始gdb调试:
2017-02-18 10:13:45 3045
原创 c语言__右移
#include #include int main(){ int num=0xeeeeeeee; int a,b,c; a=num>>16; b=num>>8; c=num>>4; printf("%x \n",num); printf("%x \n",a); printf("%x \n",b); printf("%x \n",c); printf("%x \n",
2014-09-26 12:41:55 693
转载 u-boot的编译及配置 mkconfig
原文链接http://blog.csdn.net/ghostyu/article/details/6961232刚开始接触u-boot总是存在这样的疑问,../include/configs/mini2440.h是如何关联到../board/mini2440.c中的?显然他们并没有在源码中有直接的包含关系。编译u-boot时,输入make mini2440_
2014-09-25 13:39:36 850
转载 编译一个可以运行在openwrt上的c程序
http://aboutchen.org/blog/compile-c-code-for-openwrt/编译一个可以运行在openwrt上的c程序本文的测试环境为 Ubuntu 14.0 TP-LINK WDR4320 OpenWrt Attitude Adjustment 12.09首先在ubuntu上安装一些东西 sudo apt
2014-09-17 15:51:57 12190
转载 Linux原子操作 atomic_cmpxchg()/Atomic_read()/Atomic_set()/Atomic_add()/Atomic_sub()/atomi
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位。因此这里的原子实际是使用了物理学里的物质微粒的概念。原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。原子操作主要用于实现资源计
2014-09-12 15:52:53 9032
原创 linux 补丁文件, 一个最简单的patch的格式
一个最简单的patch的格式--- 旧文件+++ 新文件@@ -旧行号开始,旧行号结束 +新行号开始,新行号结束 @@ 不改动的文件内容 不改动的文件内容 不改动的文件内容+增加的行-删除的行 不改动的文件内容 不改动的文件内容 不改动的文件内容
2014-09-12 09:25:46 1506
原创 openwrt 编译node.js
openwrt 官网介绍node.jshttp://wiki.openwrt.org/nodejscd trunk/packagegit clone https://github.com/brimstone/nodejs-openwrt.git配置内核make menuconfig ----> Languages --->
2014-09-11 16:43:14 4900 1
转载 Node.js fatal error: bits/c++config.h: No such file or directory
http://stackoverflow.com/questions/4643197/missing-include-bits-cconfig-h-when-cross-compiling-64-bit-program-on-32-bit
2014-09-11 16:07:15 21904 1
转载 openwrt 3G无线上网卡拨号--以华为EC189为例
http://blog.csdn.net/crazyleen/article/details/219865413G无线上网卡拨号--以华为EC189为例USB 3G网卡默认模式为闪存设备,使用usb-modeswitch切换3G网卡为usbserial模式,最终使用pppd拨号上网。内核配置只需选上ppp和usbserialDevic
2014-09-02 15:54:15 4165
转载 Makefile: $^ $^ $@ 与 ..c.o
Makefile: $^ $^ $@ 与 ..c.o2010-05-16 15:19gcc -c main.c gcc -c mytool1.c gcc -c mytool2.c gcc -o main main.o mytool1.o mytool2.o /****第1个Makefile***************************
2014-09-02 15:38:04 778
转载 WiFi基本知识
1. IE802.11简介标准号IEEE 802.11bIEEE 802.11aIEEE 802.11gIEEE 802.11n标准发布时间1999年9月1999年9月2003年6月2009年9月工作频率范围2.4-2.4835GHz5.150-5.350GHz5.475-5.725GHz5.725
2014-08-29 16:36:08 3382
原创 eeprom分区, 读取MAC地址
#include int main(void){ int fd; int ret; char mac[6]={0}; char buf[16]={0}; int i; fd = open(FACT_NAME, O_RDWR, 0666); if (fd {
2014-08-26 17:11:28 3208
转载 Linux下netlink通信的实例代码
Linux下netlink通信的实例代码源代码共分三个文件:内核模块:netlink-exam-kern.c应用接收:netlink-exam-user-recv.c应用发送:netlink-exam-user-send.c 内核模块源码:[cpp] view plaincopy"font-size:1
2014-08-26 11:26:28 2439
原创 C语言 整形指针,数组指针 传参
#include int fuc(int *a) { int s=100; *a = s; printf("%d\n", *a);}int main(){ int *buf=312; printf("%d\n", buf); fuc(&buf);
2014-08-26 10:56:34 2354
转载 c语言 读取文件的每一行; 查找指定key的value
#include #include int main(){ int ret; char *p, *q; char str[16]="DISTRIB_TARGET="; char *split="="; //char *str="DISTRIB_TARGET="; char buff[64]={0}; cha
2014-08-25 16:50:09 7617 1
转载 获取 无线速率300M get bitrate
int ret; int socket_id; struct iwreq wrq; socket_id = socket(AF_INET, SOCK_DGRAM, 0); strncpy(wrq.ifr_name, ifname, IFNAMSIZ); ret = ioctl(socket_id, SIOCGIWRATE, &wrq); if(r
2014-08-24 17:11:37 1542
转载 linux 延时函数 msleep() 与mdelay()
http://blog.csdn.net/mayouyang/article/details/4228378在Linux Driver开发中,经常要用到延迟函数:msleep,mdelay/udelay.虽然msleep和mdelay都有延迟的作用,但他们是有区别的.mdelay是忙等待函数,在延迟过程中无法运行其他任务.这个延迟的时间是准确的.是需要等待多
2014-08-24 17:03:36 12375 1
转载 WiFi信号强度--SIGNAL_POLL
http://blog.sina.com.cn/s/blog_a6559d920101kcp7.html
2014-08-24 16:54:47 2832
lwip-2.0.3
2017-10-19
OpenWRT_LuCI
2014-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人