技术控

环境要求: Anaconda3 (推荐,如果没有就很麻烦!)GPU + CUDA (推荐,如果没有会很慢!)Ubuntu xx.xx LTS (推荐,Windows下各种问题比较多!)内存:16GB 硬盘:40GB 如果任何一个没有你都会很麻烦但是可以解决,我这里一次性推荐使用Tens...

发布 0 条评论

在阅读代码时候看到这个片段. example = dataset_utils.image_to_tfexample( image_data, b'jpg', height, width, class_id) tfrecord_writer.write(example.SerializeToString()) 内部实现是这样的. def i...

发布 0 条评论

由于某些场合需要把模型转换到其他Deep平台,因此需要转换为ONNX来传递,当别人发来ONNX,我们也需要转换成自己的格式,但是后者会丢meta,所以其实不多. Tensorflow -> ONNX: 第一步先转换成SavedModel: model = tf.keras.mo...

发布 0 条评论

为什么分析这个器件呢,因为他涉及的知识点比较多,而且很多人都用过,既支持I2C接口,也支持SPI接口,在Linux中当然推荐用regmap统一管理,这里分析的是由Eva Rachel Retuya大佬写的驱动,实际上这个驱动也很简单但是很经典,所以值得分析. ...

发布 1 条评论

简述版: core-image-minimal - 最小镜像,不能再这个基础上精简,这个镜像仅仅能启动而很多功能还无法使用,因为缺乏应用层软件, core-image-base - 在core-image-minimal基础上添加一些硬件支持的包,这个镜像能使用所有SOC上的功...

发布 0 条评论

RPMsg,VirtIO和remoteproc是Linux上提供的通信方法,OpenAMP是在裸机或者各种RTOS里面提供的,在Vivado不用说就是FreeRTOS了,实际通信机制,可以不经由内核用户空间. 如何写一套OpenAMP程序: 准备固件资源表(Firmware Resourc...

发布 3 条评论

最近阅读一些代码中能看到!!,这真是一个巧妙地设定,他可以把非0转为1,0还是0,为什么要这么做,比如说. i = 5; !i = 0; !!i = 1; 这样就可以完全对应真1假0,而不用说真是非0,因为实际逻辑中真是1这个更合理.

发布 0 条评论

复位后第一时间在复位向量. 进入后就会跳转到复位. 进入后并没打开LPAE技术,LPAE和x86的36-bit地址异曲同工,可以支持到最大1TB内存,这里没需要,所以直接过去了,接下来读取CPSR并保存到R0,然后让R0和0x1F进行AND运算,提...

发布 3 条评论

最近也不知道发什么神经,就打算试试最新的Vitis,结果还是很失望,如果工程导入了自制IP,那么他可能会出现一些奇怪的错误. 其中因为一个Makefile错误,就会使得如果自制IP引入,就无法编译通过,我能理解原厂的想法,大概是希望我们能做...

发布 3 条评论

USB设备主要四个描述符,分别是设备描述符(Device Descriptors),配置描述符(Configuration Descriptor),报告描述符(Configuration Descriptor),字符描述符(String Descriptors),相信做过USB开发都很熟悉,并且有各种工具生成描述符. ...

发布 0 条评论