嵌入式技术william hill官网
直播中

elecfans小能手

4年用户 1715经验值
擅长:电源/新能源 测量仪表 存储技术
私信 关注
[经验]

【专家问答】韦东山:嵌入式领域的探索者带你玩转Linux系统

`
前言:Linux 内核第一版发布于 1991 年,如今最新版本已经到了 5.X。最初仅仅是一只五脏俱全的麻雀,发展到现在浩瀚如海,代码量也已经超过了千万行;最初基于 Intel x86 的 PC,如今囊括了 x86 和 arm 等主流平台在内的几十个平台;现在已经有 CentOS、Debian、 Fedora、openSUSE、Ubuntu、Red Hat Enterprise Linux 和 Android 等基于它的操作系统。Android 的崛起,更是将 Linux 带到了大众手中,如今不仅仅是数以万计的程序员,连人民大众的生活也与它息息相关。

本期专家问答我们邀请到了具有十多年嵌入式行业经验的讲师韦东山老师@weidongshan来与大家一起讨论嵌入式Linux /Android方面的问题。可讨论的内容包括但不限于:Linux驱动相关问题、Android相关问题等

高手简介:
韦东山老师论擅长各种单片机和基于ARM,MIPS Blackfin等平台的嵌入式LINUX设计。2003年毕业于中国科学技术大学,电子专业、软件专业双学位。近10年嵌入式开发经验,曾在公司领导团队全程开发车载手机,在中兴通信负责网络电视、机顶盒、IPCamera多个项目的Linux底层系统开发。

如何提问:在帖子下方回复你想要问的问题,逻辑清晰,也可以附带图片或附件,并提及韦东山老师@weidongshan

提问奖励:大家在Linux系统开发遇到的问题都可以提出来,HarmonyOS社区专家会逐一浏览并为大家解惑。其中有价值的问题可以获得10个积分

课程推荐:
韦东山升级版嵌入式视频之快速入门
你将会学到的
  • 快速熟悉嵌入式linux开发流程
  • 配套详细文档,0基础入门(最快一个月)
  • 热门开发板学习方法,无缝对接工作
  • 支持多个开发板:RK3399,RK3288,IMX6ULL,AM335X,学以致用
如果您还对韦东山老师的其他课程感兴趣,可以点击链接,学习老师的更多课程:韦东山老师直播课程

社区高手招募
不限专业领域、不限技术方向,只要你是一个有活力并乐于分享的开发者,只要你愿意把自己的经验收获分享给大家,帮助众多从业者共同学习、共同进步,我们就欢迎你来做客社区高手问答。
联系方式:zhangzipeng@elecfans.com快来联系小编吧!




` 韦东山.jpg

回帖(9)

chunhuahua

2020-10-15 18:55:53
期待大佬们进行讨论!!
举报

王栋春

2020-10-15 21:36:58
学习嵌入式是否需要高数知识 是否需要懂得单片机
1 举报
  • h1654155288.615: 嵌入式主要分为软件和硬件两部分,如果是软件,C/C++是基础知识,高数只有当设计到算法的时候才会较多用到,而硬件方面,单片机知识肯定是要懂得。

李红

2020-10-16 10:27:32
求助老师,程序运行后,按键没有反应,请问是什么问题?@weidongshan
#include
typedef unsigned int u16;          //对数据类型进行声明定义
typedef unsigned char u8;
u8 KeyValue;        //用来存放读取到的键值
u8 code smgduan[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~D的值段选码
u8 smgwei[4]={0xfe,0xfd,0xfb,0xf7};//位选码
u8 num[4] = {0};//存放数值的数组
u8 keynum = 0;//按键按下的次数

void delay(u16 i)
{
        while(i--);      
}
void KeyDown(void)
{
u8 a=0,i;
P2=0xf0;
if(P2!=0xf0)//读取按键是否按下
{
delay(1000);//延时10ms进行消抖
if(P2!=0xf0)//再次检测键盘是否按下
{      
//测试行
P2=0xf0;
keynum++;
switch(P2)
{
case(0xE0):        KeyValue=0;break;
case(0xD0):        KeyValue=3;break;
case(0xB0):     KeyValue=6;break;
case(0x70):        KeyValue=9;break;
}
//测试列
P2=0x0F;
switch(P2)
{
case(0x0E):        KeyValue=KeyValue+1;break;
case(0x0D):        KeyValue=KeyValue+2;break;
case(0x0B):     KeyValue=KeyValue+3;break;

}

num[keynum-1] = KeyValue;
if(keynum>4)
   {
   keynum=4;}
while((a<50)&&(P2!=0x0F))         //检测按键松手检测
{
delay(1000);
a++;
}
                       
}
}
}
void display(void)
{
u8 i,t;
  for(i=0;i<4;i++)
{
P1 = smgwei;//位选
t=num;
P0=smgduan[t]; //段选               
delay(15);
  }
}
void main()
{      
while(1)
{      
   KeyDown();                                   //按键判断函数
   display();               
}               
}
172000d3mpchlf3mew8hmp.png.thumb.png
举报

石玉兰

2020-10-16 16:27:10
今天在Linux尝试搭建dynamips的工作环境,在执行shell脚本时遇到个小问题,有一个名为start.sh的脚本文件,内容如下:

#!/bin/bash
./dynamips.bin -H 7200 &

在终端执行shell脚本后,出现问题如下:

[root]# ./start.sh
bash: ./start.sh: 权限不够

请问一下该如何解决呢?@weidongshan
1 举报

杨帆

2020-10-19 10:09:35
linux设备树中的chosen一项该怎么写?设备树中的chosen节点会直接影响启动的结果,但是不知道里边的内容与什么有关。参考别人的例子发现每个人写的都不一样,我也不知道该怎样根据自己的工程去修改。请问一下@weidongshan
举报

王莉

2020-10-20 15:39:10
请问@weidongshan :ARM硬件SPI接口如何同时传输3组数据?
目前需要同时传输3组16位2进制数据
分别为 ADATA PDATA1 PDATA2 三组数据 都是 16位 2进制数据
当CLK 下降沿 开始传输信号
需高速传输,
我想用SPI 接口去处理,请大家指导,用那种更高效简单的传输方式
谢谢
举报

李娜

2020-10-21 11:54:37
@weidongshan 请问一下linux misp驱动开发和arm驱动开发区别大吗,有没有书籍推荐?
举报

贾桂林

2020-10-21 12:01:03
启动时串口打印信息
ext4_mb_generate_buddy:757:group20, block bitmap and bg descriptor inconsistent: 4473 vs 4474 free clusters
是什么原因?@weidongshan
举报

火印冰薪

2020-10-21 22:58:20
期待大佬分享,非常期待分享知识
1 举报

更多回帖

×
20
完善资料,
赚取积分