安卓在kernel怎么获取设备的boardid
时间: 2024-03-02 22:51:39 浏览: 20
在 Android Kernel 中,可以通过读取设备树(Device Tree)中的 "board-id" 属性来获取设备的 board ID。具体来说,可以通过以下步骤来实现:
1. 在设备树中查找到与当前设备相关联的节点。
2. 读取该节点的 "board-id" 属性值。
3. 将该值传递给需要使用 board ID 的代码。
在实现中,可以使用函数 `of_get_property()` 从设备树中读取属性值。例如,以下代码片段演示了如何获取名为 "my_device" 的节点的 board ID 属性值:
```
struct device_node *node = of_find_node_by_name(NULL, "my_device");
if (node) {
const char *board_id = of_get_property(node, "board-id", NULL);
if (board_id) {
// 将 board_id 传递给需要使用的代码
}
}
```
相关问题
内核读取bootargs值为rootfstype=ramfs init=/init console=ttyS0,115200 no_console_suspend earlyprintk=aml-uart,0xc81004c0 ramoops.pstore_en=1 ramoops.record_size=0x8000 ramoops.console_size=0x4000 use_cma_first=1 androidboot.selinux=disabled logo=osd1,loaded,0x3d800000,576cvbs vout=576cvbs,enable hdmimode=720p50hz cvbsmode=576cvbs hdmitx= cvbsdrv=0 androidboot.firstboot=1 jtag=apee quiet androidboot.hardware=amlogic androidboot.boardid=5 androidboot.serialno=00440454F6C5131060T954F6C5269F5C mac=54:F6:C5:26:9F:5C androidboot.mac=54:F6:C5:26:9F:5C,怎么获取boardid的值
要获取 `boardid` 的值,可以在内核启动参数字符串中查找该参数并解析它的值。
在你提供的启动参数字符串中,`boardid` 的值为 `5`,可以通过以下步骤来获取:
1. 使用 `strsep()` 函数来分解启动参数字符串,以等号 (`=`) 为分隔符,将参数名和参数值分开。
2. 对每个参数名和参数值进行比较,找到 `boardid` 参数。
3. 如果找到 `boardid` 参数,将其对应的参数值转换成整数值。
以下是一个示例代码,可以在 Linux 内核中获取 `boardid` 的值:
```c
#include <linux/string.h>
...
const char *bootargs = NULL;
char *arg, *value;
int boardid = -1;
struct device_node *chosen = NULL;
chosen = of_find_node_by_path("/chosen");
if (chosen) {
bootargs = of_get_property(chosen, "bootargs", NULL);
if (bootargs) {
while ((arg = strsep((char **)&bootargs, " ")) != NULL) {
if (strlen(arg) == 0) {
continue;
}
if ((value = strchr(arg, '=')) != NULL) {
*value = '\0';
value++;
if (strcmp(arg, "boardid") == 0) {
boardid = simple_strtol(value, NULL, 10);
break;
}
}
}
}
}
if (boardid >= 0) {
// 处理 boardid 值
...
}
```
在上面的代码中,我们使用 `strsep()` 函数来分解启动参数字符串,并使用 `strcmp()` 函数比较参数名是否为 `boardid`。如果找到 `boardid` 参数,我们使用 `simple_strtol()` 函数将其对应的参数值转换成整数值。如果转换成功,我们就可以在代码中使用 `boardid` 的值。
请在该代码的基础上,再写一个将这些爬取到的数据存入excel文件中的代码
好的,以下是在该代码基础上,将爬取到的财报信息存入Excel文件中的代码:
```python
import requests
from lxml import etree
import time
import pandas as pd
# 请求头,需要添加Referer和User-Agent等信息
headers = {
'Referer': 'http://data.eastmoney.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
# 请求URL
url = 'http://data.eastmoney.com/bbsj/stocklist.html'
# 请求参数,需要指定页码和每页显示数量等信息
params = {
'boardid': 'gn',
'page': 1,
'pagesize': 3000
}
# 发送请求,并添加延时等待
response = requests.get(url, params=params, headers=headers)
time.sleep(1)
# 解析HTML页面,获取上市公司的代码和名称等信息
html = etree.HTML(response.text)
codes = html.xpath('//div[@id="quotebody"]/table/tbody/tr/td[2]/a/text()')
names = html.xpath('//div[@id="quotebody"]/table/tbody/tr/td[3]/a/text()')
# 定义一个空DataFrame,用于存储财报信息
df = pd.DataFrame(columns=['公司名称', '股票代码', '报告日期', '每股收益'])
# 遍历上市公司,获取财报数据
for i in range(len(codes)):
# 请求URL,需要指定上市公司的代码
url = 'http://dcfm.eastmoney.com/em_mutisvcexpandinterface/api/js/get?type=YJBB20_YJBB&token=70f12f2f4f091e459a279469fe49eca5&st=reportdate&sr=-1&p=1&ps=50&js={"pages":(tp),"data":(x)}&filter=(code=%s)' % codes[i]
# 发送请求,并添加延时等待
response = requests.get(url, headers=headers)
time.sleep(1)
# 解析JSON数据,获取财报信息
data = response.json()
for item in data['data']:
# 添加财报信息到DataFrame中
df = df.append({'公司名称': names[i], '股票代码': codes[i], '报告日期': item['reportdate'], '每股收益': item['eps']}, ignore_index=True)
# 将DataFrame中的数据存储到Excel文件中
df.to_excel('财报信息.xlsx', index=False)
```
在这个代码中,使用了pandas库来存储财报信息,并将其写入Excel文件中。需要注意的是,pandas库需要安装,可以使用pip install pandas命令进行安装。另外,如果需要自定义Excel文件的格式和样式等信息,可以使用openpyxl等库进行进一步的操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)