一个函数中调用另外一个函数试,将本地的大数据通过指针传递下去让他进行处理,结果出现segmentation fault
比如在
bool SetstringPlay(char * pi,int length,int x,int y)
{
。。。
OsdWriteChar(x,y, pi.width, pi.height,RED_RGB,0,pi,addr);
}
结果在OsdWriteChar中出现错误,数据也就1000字节左右,Linux下运行。
后来果断换成结构体的形式。传递结构体,不用指针了 如下,解决问题...
阅读全文>>
Freetype是将字库的字转换成一种色度的点阵,比如该例子中转换为256色的点阵。最终效果如下图
void *freetp_test(void *arg)
{
unsigned char fontbuffer[1025];
#if 1
printf("FT_Init_FreeType ");
berror = FT_Init_FreeType( &
pFTLib );
...
阅读全文>>
cnw8302的osd实现字符叠加原理
基于cavium的cnw8302平台上
实现 利用osd 功能 往输出的屏幕上写字符及数字功能。
Cnw8302硬件平台是基于Linux的,硬件接口提供像素设置,格式设置,分辨率设置,keycolor设置等一些常见的参数。Osdbuffer可以理解为液晶屏的GRAM,但是根据每一个图像处理器的功能不同,osd不同于GRAM,可以理解为屏幕的显示为三层,最底层为硬件层,第二层为硬件抽象层,第三层为osd层,osd层将底层的图像覆盖。
接口函数如下
osd_handle = CSOSD_Open(OSD_LAYER_0);
&nbs...
阅读全文>>
如下图,要在1920*1080的分辨率屏幕下截取起始坐标为50,100宽度为100,高度为50的缓冲区buffer。
像素为2个,自左而右,自上而下。
算法
int CutOsdBuf(int start_h,int start_w,int
window_w,int window_h,unsigned char *buffin,unsigned char *buffout)
{
unsigned char tempbuf[1920*1080*3];
int
i=0;
...
阅读全文>>
Build root用来编译文件系统可以将使用的库编入,是一个很好的编译工具。编译过内核的都知道使用 make menuconfig 就可以勾选我们需要的驱动是否编译到内核中去,当然事先需要先写好嵌入的语句。Buildroot和编译内核一样,也是在buildroot 下make menuconfig
勾选需要的库或者工具。
然后使用 make此命令将执行以下步骤:
按照需要下载源文件;
 ...
阅读全文>>
使用cmake编译程序时,要添加新的lib库,比如freetype和zlib库,
首先在要编译的文件路径下找到 CMakefiles.list 这个文件
打开添加 include_directories 这条指令时添加头文件所在的路径的 比如我的freetype的绝对路径如下
include_directories(/home/lide/mywork/1/cnw8302-sdk/vureach/vureach/work/build/freetype-2.4.11/include/)
include_directories(/home/lide/...
阅读全文>>
使用virtual box下的Ubuntu时 ,使用NAT模式的网络进行下载安装,使用桥接的模式挂载NFS
阅读全文>>
scp指令是基于ssh 协议的传输指令。所以如果使用SCP要确认arm和服务器是否安装ssh协议。
这里arm开发板作为客户端,远端服务器作为ssh服务器。
在arm 开发板上敲入SCP来确定是否可以可用。当出现 usage:时说明能用。
比如要从远端的服务器上 将sys.xml文件拷贝到arm上,sys.xml位于 服务器的目录是 /home/kens/work/ 下。
指令如下
scp kens@10.100.86.15:/home/kenfs/work/sys.xml .
10.100.86.15为远端服务器的IP地址,但如果有域名也可以更换为域名,将文件拷贝到当前地址。
...
阅读全文>>
广播,就是指同时向子网中的多台计算机发送消息,并且所有子网中的计算机都可以接收到发送方发来的消息。每个广播消息包含一个特殊的IP地址。
广播消息地址分为两种类型:本地广播和全球广播。
通过本地广播向子网中的所有计算机发送广播消息时,其他网络不会受到本地广播的影响。我们知道IP地址分为两部分,网络地址和主机地址,标准网络地址部分组成了本地网络地址的第一部分,字节地址中全部为1的部分用于主机地址部分(即十进制的255)。
例如,对于B类网络192.168.0.0,使用子网掩码255.255.0.0,(此IP地址的网络号为192.168,主机号为0.0,子网掩码全为1的对应的IP地址的网络号)则本地广播地址是192.16...
阅读全文>>
利用U-BOOT中的autoscr命令,可以在U-BOOT中运行“脚本”。
首先在文本文件中输入需要执行的命令,
然后用tools/mkimage封装,
然后下载到开发板上,用autoscr执行就可以了。
=======示例=======
(1)编辑如下的脚本example.script。
echo
echo Network Configuration:
echo ----------------------
echo Target:
printenv ipaddr hostname
echo
echo Server:
printenv serverip rootpath
echo
(2)用tools/mkimage对脚本进行封装。
# mkimage -A ...
阅读全文>>
1. Printenv 打印环境变量。
uboot> printenv
baudrate=115200
ipaddr=192.168.0.111
ethaddr=32:34:46:78:9A:DC
serverip=192.168.0.100
Environment size: 80/8188 bytes
2. Setenv 设置新的变量
如:
uboot> setenv myboard AT9...
阅读全文>>
本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织。毕竟文字跟有声语言表达有别。但愿简单的东西别让我讲的太复杂!
Arm板系统文件一般有三个——bootloader(uboot)、kernel(uImage)及根文件系统(rootfs)。在arm板上电后,按uboot->kernel->rootfs的顺序依次启动。由于开发板上有多种存储介质,三个文件可以放在任何可以存储的介质上,因此也就导致文件的多种启动方式。本文就来讨论,以上三个文件对应不通存放位置的不同启动配置。
一般开发板上会有flash(Nor or NAND),mmc,emmc,sd卡等。系统文件可以烧写在其中的任意一种上,因此也就对应不通的启动。在开发过程中,有时...
阅读全文>>
微信公众号现已外包专业团队运营,
最新的单片机/嵌入式设计,
您或许是电子专业学生,或许是研发人员,或许是项目经理,这些设计都值得您
拥有,扫描关注吧!
qq:839602830
qq交流群:259642422
官方微博:鲤鲸科技
阅读全文>>