ymir
易百纳技术社区
易百纳技术社区
0 访问量
0 原创专栏
8 资料
2 粉丝
个性签名:此E友还没有留下个性签名哦~
加入易百纳时间:2015-05-16

个人成就

易百纳技术社区 共获得 1 个点赞
易百纳技术社区 共获得 90 个收藏
易百纳技术社区 共获得 552 次评论/回复

个人勋章

分类专栏

Ta擅长的领域

暂无
  • 使用网上提供的方式,只是partition_merge不好找。
    2019-05-24
    1 0 2167
  • 最近实现了一个简易的RTSP客户端程序,经过测试已经实现了H264码流数据的提取,之前做测试的时候,发送的解码通道已经能正确的解码。 还有关于需要用户名和密码认证的部分没去实现,因为暂时还没用到。欢迎测试。 [url=https://git.oschina.net/ppslinux/RtspClient.git]GIT地址[/url] 如果有问题欢迎留言,后期会更新。
    2017-03-23
    27 2 5502
  • 核心板使用HI3531,AD芯片是TW2867,挂上驱动,写的测试代码可以正常运行,VI也收到数据,但是把VI的图像保存下来后,发现VI的图像是错乱的, 应该是tw2867的配置问题,但是不知道该怎么配置,有哪位大大可以提供些许建议?
    2016-12-20
    2 0 2894
  • 测试程序运行后vi状态如下 # cat /proc/umap/vi [code][VIU] Version: [Hi3531_MPP_V1.0.9.0 Debug], Build Time: [Jan 15 2013, 22:33:00] -----MODULE PARAM-------------------------------------------------------------- detect_err_frame                0 -----VI DEV ATTR--------------------------------------------------------------- Dev   IntfM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq    0   BT656 4Mux ff000000        0     I  -1  -1  -1  -1  UYVY -----VI HIGH DEV ATTR--------------------------------------------------------------- Dev  InputM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq CombM CompM ClkM  Fix FldP -----VI PHYCHN ATTR------------------------------------------------------------ PhyChn CapX CapY  CapW  CapH  DstW  DstH CapSel Mirror Flip IntEn PixFom SrcRat DstRat       0    0    0   720   576   720   576   both      N    N     Y  sp420     -1     -1       1    0    0   720   576   720   576   both      N    N     Y  sp420     -1     -1       2    0    0   720   576   720   576   both      N    N     Y  sp420     -1     -1       3    0    0   720   576   720   576   both      N    N     Y  sp420     -1     -1 -----VI PHYCHN STATUS 1---------------------------------------------------------- PhyChn  Dev  IntCnt  VbFail  LosInt  TopLos  BotLos BufCnt  IntT  SendT  Field  Stride       0    0       0       0       0       0       0      0     0      0 (null)       0       1    0       0       0       0       0       0      0     0      0 (null)       0       2    0       0       0       0       0       0      0     0      0 (null)       0       3    0       0       0       0       0       0      0     0      0 (null)       0 -----VI PHYCHN STATUS 2--------------------------------------------------------- PhyChn MaxIntT OverCnt LIntCnt  ThrCnt AutoDis  ccErrN    IntRat       0       0       0       0       0       0       0         0       1       0       0       0       0       0       0         0       2       0       0       0       0       0       0         0       3       0       0       0       0       0       0         0 -----VI PHYCHN VBI ATTR--------------------------------------------------------- PhyChn   VbiId       X       Y   Local     Len  CasErr -----VI CASCADE CHN ATTR--------------------------------------------------------- CasChn    Dev  PhyChn  SrcRat  DstRat -----VI CHN STATUS------------------------------------------------------------- ViChn   bEnUsrP   FrmTime   FrmRate   SendCnt    SwLost      0         N         0         0         0         0      1         N         0         0         0         0      2         N         0         0         0         0      3         N         0         0         0         0 -----VI CHN CALL DSU STATUS------------------------------------------------- ViChn UsrBgnNOk UsrCancel UsrEndOk UsrCbOk   CvrBgnNOk CvrCancel CvrEndOk CvrCbOk   OsdBgnNOk OsdCancel OsdEndOk OsdCbOk[/code] 查看tw867的状态寄存器,AD是检测到视频信息的。 [code]# i2c_read 0x50 0x00 device_addr:0x50; reg_addr:0x 0. 0x 1 [/code] 模拟视频源来自一个摄像机,输出模拟视频分辨率是720*576。配置上看应该没啥问题。但是VI模块一直没有输入,不知谁遇到过?
    2016-08-15
    11 0 6222
  • 本帖最后由 ymir 于 2017-2-23 08:45 编辑 这里暂时提供一个思路,海思mpp系统的初始化做成动态库,Qt使用QLibrary类来处理该动态库完成mpp系统的初始化过程,在我之前的方案中会和mpp系统中相关文件共同编译,还需要修改产生的Makefile,而用这个方案的话,可以直接的进行程序的开发,而移植过程只是添加处理动态库的对象。 而如果你用我这边弄的东西,只要把demo程序中的handlehisidynamic.cpp, handlehisidynamic.h文件放到你的工程中,并且在main.cpp的QApplication 对象之前做好动态库加载就好了,就像我main.cpp里写的那样,从此可以直接进行Qt程序开发了,也无需去考虑去修改qmake生成的Makefile文件了。so easy。
    2016-04-08
    45 13 12664
  • 最近在调试3531的PCIE,PCIE外接的是PCIE转串口芯片,但是在看官方的demo板的时候似乎硬件也没有工作, 不知是否是内核的问题?大家有没有遇到过? [code]pci 0000:00:00.0: [19e5:3531] type 1 class 0x000604 pci 0000:00:00.0: reg 10: [mem 0x00000000-0x007fffff pref] pci 0000:00:00.0: reg 14: [mem 0x00000000-0x0000ffff] pci 0000:00:00.0: reg 38: [mem 0x00000000-0x0000ffff pref] pci 0000:00:00.0: supports D1 pci 0000:00:00.0: PME# supported from D0 D1 D3hot pci 0000:00:00.0: PME# disabled PCI: bus0: Fast back to back transfers disabled pcie_read_from_device->485,pcie0 not link up! PCI: bus1: Fast back to back transfers enabled pci 0000:02:00.0: [19e5:3531] type 1 class 0x000604 pci 0000:02:00.0: reg 10: [mem 0x00000000-0x007fffff pref] pci 0000:02:00.0: reg 14: [mem 0x00000000-0x0000ffff] pci 0000:02:00.0: reg 38: [mem 0x00000000-0x0000ffff pref] pci 0000:02:00.0: supports D1 pci 0000:02:00.0: PME# supported from D0 D1 D3hot pci 0000:02:00.0: PME# disabled PCI: bus2: Fast back to back transfers disabled pcie_read_from_device->485,pcie1 not link up! PCI: bus3: Fast back to back transfers enabled pci 0000:02:00.0: BAR 0: assigned [mem 0x60000000-0x607fffff pref] pci 0000:02:00.0: BAR 0: set to [mem 0x60000000-0x607fffff pref] (PCI address [0x60000000-0x607fffff]) pci 0000:02:00.0: BAR 1: assigned [mem 0x60800000-0x6080ffff] pci 0000:02:00.0: BAR 1: set to [mem 0x60800000-0x6080ffff] (PCI address [0x60800000-0x6080ffff]) pci 0000:02:00.0: BAR 6: assigned [mem 0x60810000-0x6081ffff pref] pci 0000:02:00.0: PCI bridge to [bus 03-03] pci 0000:02:00.0:   bridge window [io  disabled] pci 0000:02:00.0:   bridge window [mem disabled] pci 0000:02:00.0:   bridge window [mem pref disabled] pci 0000:00:00.0: BAR 0: assigned [mem 0x30000000-0x307fffff pref] pci 0000:00:00.0: BAR 0: set to [mem 0x30000000-0x307fffff pref] (PCI address [0x30000000-0x307fffff]) pci 0000:00:00.0: BAR 1: assigned [mem 0x30800000-0x3080ffff] pci 0000:00:00.0: BAR 1: set to [mem 0x30800000-0x3080ffff] (PCI address [0x30800000-0x3080ffff]) pci 0000:00:00.0: BAR 6: assigned [mem 0x30810000-0x3081ffff pref] pci 0000:00:00.0: PCI bridge to [bus 01-01] pci 0000:00:00.0:   bridge window [io  disabled] pci 0000:00:00.0:   bridge window [mem disabled] pci 0000:00:00.0:   bridge window [mem pref disabled] PCI: CLS 32 bytes, default 32 [/code]
    2016-03-07
    4 0 4521
  • 本帖最后由 ymir 于 2015-7-1 14:59 编辑 成功找到海思系列芯片使用Qt的方法: 方法下: 1.编译出qt库文件以及相应的工具,主要的工具还是qmake 2.将SDK中的库文件添加到qt库的lib目录,例如我的就是/opt/qt4.8.6/lib 在其他平台上编写好qt工程之后,将代码用该库进行编译 3.主要操作还是修改Makefile以及在qt项目的main.cpp中添加相关初始化代码,
    2015-07-01
    11 3 5055
  • 我已经编译好了qt工具,但是根据查阅资料发现,使用qt是需要先初始化mpp设备的,而那些代码被编译进了静态库或者动态库,请问我该如何将那些库和Qt代码联系起来? 是在Qt的makefile里添加库文件的路径以及头文件么?
    2015-06-30
    9 1 5151
  • 本帖最后由 ymir 于 2015-6-30 15:58 编辑 分享一份自己编译的Qt库文件,有qt4.8.5 和qt4.8.6两个版本的 4.8.5 http://pan.baidu.com/s/1sjyYjRB 4.8.6 http://pan.baidu.com/s/1mgkpuD6
    2015-06-30
    15 1 5385
  • 新人小白,不懂去哪里下载datasheet
    2015-05-19
    1 0 2606
  • 本帖最后由 ymir 于 2015-5-26 10:25 编辑 hifb里文档说可以通过linux自带的函数打开,操作/dev/fbn设备,但是实际操作的时候总是显示没有权限,论坛里有人呢说必须要初始化MPP才可以。这是为什么? 如下是文档内容:
    2015-05-26
    3 1 3863
  • 本帖最后由 ymir 于 2015-7-16 18:47 编辑 个人修改Makefile,使用该Make可以使用海思工具中的某些API进行GPIO开发: 该工具位于目录 osdrv/tools/board_tools/reg-tools-1.0.0 [code]├── include │   ├── common │   │   ├── gpio_i2c.h │   │   ├── hi_bits.h │   │   ├── hi_config.h │   │   ├── hi_dbg.h │   │   ├── hi_defs.h │   │   ├── hi_error.h │   │   ├── hi.h │   │   ├── hi_help_en.h │   │   ├── hi_i2c.h │   │   ├── hi_limit.h │   │   ├── hi_message.h │   │   ├── hi_module.h │   │   ├── hi_os.h │   │   ├── hi_thread.h │   │   ├── hi_type.h │   │   ├── hi_utils.h │   │   ├── hi_version.h │   │   └── mmpver.h │   └── utils │       ├── argparser.h │       ├── btools.h │       ├── cmdshell.h │       ├── memmap.h │       ├── stat.h │       └── strfunc.h ├── Makefile ├── source │   ├── common │   │   ├── hi_dbg.c │   │   ├── hi_message.c │   │   └── hi_thread.c │   ├── tools │   │   ├── btools.c │   │   ├── hiddrs.c │   │   ├── hii2c.c │   │   ├── hil2s.c │   │   ├── himc.c │   │   ├── himd.c │   │   ├── himm.c │   │   └── hivd.c │   └── utils │       ├── argparser.c │       ├── cmdshell.c │       ├── memmap.c │       ├── stat.c │       └── strfunc.c └── work     ├── main.c     └── Makefile [/code] [code]# Makefile # this file is for the develop for the GPIO # that the file should be in the folder of reg # set files TARGET=ARM CROSS=arm-hisiv100nptl-linux CC  = $(CROSS)-gcc STRIP=$(CROSS)-strip # # Configuration: Debug # TOPDIR=../ INCDIR=$(TOPDIR)include SRCDIR=$(TOPDIR)source OUTDIR=$(SRCDIR) CFG_INC +=-I$(INCDIR)/common\                   -I$(INCDIR)/utils\                   -I$(INCDIR)/tools HICOMMON_OBJ := #MAIN_OBJ=main.o MAIN_SRC :=$(wildcard *.c) MAIN_OBJ :=$(MAIN_SRC:%.c=%.o) OUTTARGET :=$(MAIN_OBJ:%.o=%) #!!!!!!!!!!!!!!! 1 添加生成的可执行文件 CFG_LIB = -lpthread -lrt HICOMMON_OBJ=$(OUTDIR)/hi_message.o \              $(OUTDIR)/hi_thread.o  \              $(OUTDIR)/hi_dbg.o \              $(OUTDIR)/cmdshell.o \              $(OUTDIR)/argparser.o BASE_OBJ=$(OUTDIR)/strfunc.o \          $(OUTDIR)/memmap.o OBJ=$(HICOMMON_OBJ) \     $(BASE_OBJ) ALL_OBJ = $(OBJ)\                   $(MAIN_OBJ) \          CFG_FLAGS = $(CFG_DEBUG) $(CFG_INC) $(CFG_DEFS) COMPILE=$(CC) $(CFG_FLAGS) -c -o "$(OUTDIR)/$(*F).o" "$<" all : $(OUTTARGET) # complie the base api $(OUTDIR)/%.o : $(SRCDIR)/utils/%.c         $(COMPILE) $(OUTDIR)/%.o : $(SRCDIR)/common/%.c         $(COMPILE) $(OUTDIR)/%.o :  $(DRIVERDIR)/memmap/%.c         $(COMPILE) $(MAIN_OBJ) :%.o:%.c $(OUTDIR) $(OBJ)                 $(CC) $(CFG_CFLAGS)  $(CFG_INC) -c $(MAIN_SRC) $(OUTTARGET) :%:%.o $(BASE_OBJ) $(HICOMMON_OBJ)         $(CC) $(CFG_INC) -lpthread -lm -o $@ $^ clean:         rm -f $(OUTFILE)         rm -f $(OBJ)         rm -f $(OUTDIR)/*.o         rm -rf $(MAIN_OBJ)         rm -rf $(OUTTARGET)         #rm -f himd himm himc himd.l hier hiew         rm -f hiddrs hil2s # Clean this project and all dependencies cleanall: clean [/code]
    2015-07-09
    22 3 11547
  • 比如让某个GPIO作为中断引脚,当端口有电平触发中断后,如何将该中断信息发送给上层应用程序? 如果在应用里单独开一个线程去监控某个端口的思路似乎不太好吧? 查阅资料后一般都是在驱动里搞的,通过netlink来传递消息?
    2015-07-09
    5 2 6728
  • 本帖最后由 ymir 于 2015-7-10 12:57 编辑 四个串口驱动diff文件 [code]diff --git a/arch/arm/mach-hi3520d/core.c b/arch/arm/mach-hi3520d/core.c index f57a008..46462e1 100644 --- a/arch/arm/mach-hi3520d/core.c +++ b/arch/arm/mach-hi3520d/core.c @@ -309,16 +309,21 @@ struct sys_timer hi3520d_timer = { HIL_AMBA_DEVICE(uart0, "uart:0",  UART0,    NULL); HIL_AMBA_DEVICE(uart1, "uart:1",  UART1,    NULL); - +////dfl uart2 uart3//// +HIL_AMBA_DEVICE(uart2, "uart:2",  UART2,    NULL); +HIL_AMBA_DEVICE(uart3, "uart:3",  UART3,    NULL); +///dfl uart2 uart3//// static struct amba_device *amba_devs[] __initdata = {         &HIL_AMBADEV_NAME(uart0),         &HIL_AMBADEV_NAME(uart1), +        &HIL_AMBADEV_NAME(uart2), +        &HIL_AMBADEV_NAME(uart3), }; static struct clk uart_clk; -static struct clk_lookup lookups[2]; - +//static struct clk_lookup lookups[2]; +static struct clk_lookup lookups[4];//4个串口 static void  uart_clk_init(unsigned long clk) {         uart_clk.rate = clk; @@ -328,6 +333,12 @@ static void  uart_clk_init(unsigned long clk)         lookups[1].dev_id = "uart:1";         lookups[1].clk = &uart_clk; + +        lookups[2].dev_id = "uart:2"; +        lookups[2].clk = &uart_clk; + +        lookups[3].dev_id = "uart:3"; +        lookups[3].clk = &uart_clk; } void __init hi3520d_init(void) @@ -351,6 +362,16 @@ void __init hi3520d_init(void)                 edb_trace();                 amba_device_register(amba_devs, &iomem_resource);         } +        //////dfl uart 2 uart3/////// +        // writel(1, IO_ADDRESS(REG_BASE_IO)); +        // writel(0x, IO_ADDRESS(GPIO1_BASE+0x400)); + +         writel(1, IO_ADDRESS(IOCONFIG_BASE+0x060));//// UART2_TXD +         writel(1, IO_ADDRESS(IOCONFIG_BASE+0x05c)); //// UART2_RXD + +         writel(1, IO_ADDRESS(IOCONFIG_BASE+0x0b8));//// UART3_TXD +         writel(1, IO_ADDRESS(IOCONFIG_BASE+0x0bc)); //// UART3_RXD +        //////dfl uart 2 uart3/////// } MACHINE_START(HI3520D, "hi3520d") diff --git a/arch/arm/mach-hi3520d/include/mach/irqs.h b/arch/arm/mach-hi3520d/include/mach/irqs.h index 5f0a484..2610e17 100644 --- a/arch/arm/mach-hi3520d/include/mach/irqs.h +++ b/arch/arm/mach-hi3520d/include/mach/irqs.h @@ -8,6 +8,8 @@ #define UART0_IRQ                (HI3520D_IRQ_START + 8) #define UART1_IRQ                (HI3520D_IRQ_START + 9) +#define UART2_IRQ                (HI3520D_IRQ_START + 10) +#define UART3_IRQ                (HI3520D_IRQ_START + 11) #define INTNR_L2CACHE_CHK0_INT        (HI3520D_IRQ_START + 29) #define INTNR_L2CACHE_CHK1_INT        (HI3520D_IRQ_START + 30) [/code]
    2015-07-10
    14 2 7924
  • 本帖最后由 ymir 于 2015-7-31 18:31 编辑 完整的新帖子地址: [url=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=8217&extra=]完整过程[/url] hi3520D+海思库+Qt库+还是示例代码公共部分。 Qt库与海思底层库以及sample中示例代码的融合。具体的方式是修改Makefile的文件内容。 以下是Makefile变更内容,Makefile_Modefy文件为修改过的文件。 Qt库文件的变更内容:在qt库文件中添加了海思的相关库,相关目录内容如下: 之后,qt写好的工程文件:一般我们将fb的初始化动作放在main.cpp中完成,这样我们就可以依赖qt的gui而不必去使用海思提供 底层代码。qt工程目录位于sample的目录下,我们就按照sample的工程目录的创建方式来创建工程(因为sample下的Makefie依赖关系有 局限性,如果使用其子子目录,那么sample顶层的Makefile.pagram也需要变更,这样也会产生一下问题)。 示例工程为frameTest; 看一下工程的目录结构: 之后使用qmake产生Makefile(这一步根据qt的工程文件qtproject.pro文件产生程序文件依赖关系) 之后按照文件首的diff文件修改Makefile,编译过程直接运行命令make即可,所有编译的文件依赖,交叉编译器的配置等都已经在Makefile文件中指定好了。 编译结果: pdf文档:附件:Qt_hi3520D移植.pdf
    2015-07-06
    56 15 26259
  • [i=s] 本帖最后由 ymir 于 2019-9-26 22:55 编辑 [/i] 2019-09-26 其实在海思上使用Qt没有必要像该帖子的描述的方法那么复杂,而且使用帖子里描述的方式实施起来也特别的麻烦。从我发这个帖子到现在已经有四年了,我看大家还在关注这个老的帖子,真是过意不去。 Qt4.8的界面实现基于Framebuffer,因此在海思系统中,如果要使用Qt进行界面开发,你必须将Framebuffer初始化好,而初始化Fb,必须先初始化MPI系统。因此比较方便的方式就是使用海思的媒体库,编写一个媒体初始化动态库,此动态库完成MPI系统,FrameBuffer系统的配置,给Qt界面系统的运行创建环境。Qt的界面系统在QApplicatio启动之前都不会去动FrameBuffer,因此在你的QApplication对象调用exce()之前对媒体系统进行初始化动态库即可。 当然这个最终方式我早就发了帖子了,竟然没什么人看。。。 地址 http://bbs.ebaina.com/forum.php?mod=viewthread&tid=10915&extra=&page=1 这是我上一个粗略的过程,记录之前走过的路,大家也可以参考一下。我也是帮助了两个网友后突发的想写这个帖子, 帮助大家在Qt的移植过程中加快步伐! [=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=8036&extra=page%3D1]我的上个帖子 Qt编译过程可以参看GoodMan大神的编译过程 地址:[=http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=8086&extra=page%3D1]嵌入式Qt编译过 我的Qt库的编译安装路径为/opt/Qt4.8 就是在编译的时候指定 --prefix /opt/Qt4.8 编译完成后的目录大概是这样的 [code][root@bogon:1 opt]# tree Qt4.8/ -L 1 Qt4.8/ ├── bin ├── include ├── lib ├── mkspecs ├── plugins └── translations[/code] 之后将海思sample目录下的东西库拷贝到这里 [code][root@bogon:1 opt]# tree Qt4.8/ -L 1 Qt4.8/ ├── bin ├── hilib // mpp 目录下的lib文件夹的内容都放在这里 ├── hinclude // mpp 目录下的include下的所有文件都放在这里 ├── include ├── lib ├── mkspecs ├── plugins └── translations[/code] 因为我们的目的是在代码中复用sample下的基础代码,然而这部分代码与内核代码,以及外部驱动代码都有一定的联系我之前试着 将这部分代码抽离出来,后来没成功。考虑到可能要做的移植工作很多,最后还是决定将qt工程嵌入到samplke目录下,直接使用其 各个目录下的Makefiel文件,因为他们都已经定义好了编译规则,我们只需要参考其他的工程文件的Makeifle即可定义好我们的规则。 开动: Qt库我就不说了,按照自己的配置也可以,只要将相应的库文件放进去就行了,库文件移植到板子的时候,只需要留下so动态库文 件即可,其余的静态库.a文件什么的,以及工具都删除即可,将库放到板子的同目录就可以了,在指定库搜索路径添加你的的动态 库路径。我之前写了个qt的测试程序,拖了几个控件,在windows上编译通过。之后我们将该工程代码放到sample目录下,大概是 这样的: [code] [root@bogon:1 sample]# tree -L 1 . ├── audio ├── common ├── guiclick //该目录为从测试工程目录,其中存放着代码 ├── hifb ├── LIB ├── Makefile ├── Makefile.param ├── QtBuild //该目录为新建的编译目录。 ├── region ├── tde ├── vda ├── vdec ├── venc ├── vio └── work[/code] 然后在~/.bashrc 中添加一行PATH=$PATH:/opt/Qt4.8.5 运行source ~/.bahrc 使变量生效,之后运行qmake如果有正常的输出,就是配置好了, 若没有检查相应的错误。 之后就开始我们的移植之路 我们将工程文件放到sample目录下。工程目录大概这样的: [code][root@bogon:1 sample]# tree -L 1 guiclick/ guiclick/ ├── guiclick.pro ├── guiclick.pro.user ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h └── mainwindow.ui[/code] 然后我们在sample下新建一个编译目录: mkdir Qtbuild, 进入Qtbuild。 之后使用命令[root@bogon:1 QtBuild]# qmak -r ../guiclick/guiclick.pro生成Makefile 然后修改Makefile文件内容[color=Red],请注意下面变更的内容,尤其注意 “=”号前面是否有”:“,“+”等符号[/color] 修改Makefile内容 变更: [code] 9 ####### Compiler, tools and options 10 include ../Makefile.param // 添加一行: 添加sample目录编译控制文件。 11 CC = arm-hisiv100nptl-linux-gcc 14 #CFLAGS := -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) //因为在上层的Makefile.parram中定义了CFALGS,而我们的编译需要依赖该 //选项,所以这里修改为+= 15 CFLAGS += -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) 16 CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) 16 CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) 17 INCPATH := -I/opt/Qt4.8/mkspecs/qws/linux-arm-hisiv100nptl-g++ -I../guiclick -I/opt/Qt4.8/include/QtCore -I/opt/Qt4.8/include/QtNetwork -I/ opt/Qt4.8/include/QtGui -I/opt/Qt4.8/include -I. -I. -I../guiclick -I. //这里是添加海思库的头文件支持。 18 INCPATH += -I/opt/Qt4.8/hinclud -I. 21 LIBS := $(SUBLIBS) -L/opt/Qt4.8/lib -lQtGui -L/opt/Qt4.8/lib -lQtNetwork -lQtCore -lpthread //添加海思库文件依赖,为了方便,我们把所有的库文件都指定 22 LIBS += -L/opt/Qt4.8/hilib -lmpi -lhdmi -ltde -lanr -laec -ljpeg -lresampler -lVoiceEngine 23 AR = arm-hisiv100nptl-linux-ar cqs 86 .SUFFIXES: .o .c .cpp .cc .cxx .C 87 88 .cpp.o: 89 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" $(MPI_LIBS) $(AUDIO_LIBA) $(JPEGD_LIBA) // 添加这部分主要是在编译main.cpp的时候需要到这些库的支持,这些库在上层的Makefile.param中定义了 90 104 105 all: Makefile $(TARGET) 106 // 编译的目标文件依赖于公共代码,就是上层的common文件夹下的代码,使用该部分代码可以快速开发 107 $(TARGET): ui_mainwindow.h $(OBJECTS) $(COMM_OBJ) // 添加链接参数,加入海思库文件以及公共代码的编译.o文件 108 $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(COMM_OBJ) $(LIBS) 219 220 main.o: ../guiclick/main.cpp // CFLAG指定了common文件夹的头文件,而我们使用的sample的实例代码主要还是这部分,如果不加CFLAG //会有hi_common.h,以及某些驱动头文件找不到的错误,在编译的时候也需要指定库 221 $(CXX) -c $(CXXFLAGS) $(CFLAGS) $(INCPATH) -o main.o ../guiclick/main.cpp 222 [/code] 之后是guiclick/main.cpp文件内容的更改,主要是在该文件中对相关内容进行初始化。代码在二楼给出 之后就是可以编译了。运行make即可编译出来了。编译出来放到板子上运行就好咯。 PDF下载: [attach]2643[/attach]
    2015-07-27
    133 36 35955
  • 前人写的详细的帖子: [url=http://mobile.51cto.com/symbian-272110.htm]http://mobile.51cto.com/symbian-272110.htm[/url] 其实该帖子写的蛮好的。但是在实际的操作过程中还是又许多的迷惑,编译的过程也是很烦人的。因为每一次编译都是一次漫长的等待 之前我想手动的去修改qconfig文件,但是呢,发现feature实在是太多了,加起来也有上百个了。查阅feature.txt也是不得其解。因为说 的太简要了。无法得到太多的有用的信息。所以还是使用qconfig工具吧。 根据前人的文档,在编译之初需要使用qmake工具来编译tools/qconfig下的工程得到qconfig工具。所以第一次编译的时候指定的平台肯定 gcc而不是arm***gcc咯。编译成功后使用产生的qmake工具来编译qconfig工程,qmke工具编译好之后在qt-every***/bin下,使用该工具 编译qconfi之后,在linux的GUI下,运行该工具,选择相应目录下的feature.txt(前人贴子有地址)。之后根据需要来选中相应的模块。 默认情况下所有的feature都被选中,这时候编译出来的QtGUI大约为13M,裁剪内容比较多的情况下(我已经把menu等模块都去掉了),之 后编译出来的库大约7兆,库中留下两个字体文件,留下so动态库,压缩后总的Qt库大约为6兆左右,这样也算是蛮小的了吧?可以开机启动蒋该 压缩文件解压到内存挂载起来使用哦。QtCore为3.4兆,没想着去动它。尽量不动核心的东西吧、
    2015-08-03
    32 7 12707
  • 现在的情况是这样的,我使用fastboot工具把uboot下载到内存后,然后用ftp下载了这个uboot,使用go命令运行下载的uboot,显示是没有错误的。然而当我把该uboot写入spiflash之后,启动的时候却只有空格输出,根本就没有uboot相关的启动信息。 测试过,spiflash可以读出写入数据。但是不知道什么原因导致开机启动失败? 有网友说他们直接把uboot写入他们的demon板是可以启动板子的,但是我即使使用他们提供的uboot,在启动之后,仍然无法启动,不知哪位可曾遇到相似的问题?
    2015-08-05
    5 0 3716
  • 本帖最后由 ymir 于 2015-8-11 09:48 编辑 连接数据库的嵌入式库,参见github [url=https://github.com/ppslinux/mariadb-connector-c]github[/url]
    2015-08-11
    4 0 3286
  • 如题,有人实现了海思的SPI的驱动程序麽?
    2015-08-12
    12 0 8703
易百纳技术社区
共23条
  • 1
  • 2
易百纳技术社区