可以解决很多的问题
- 时钟稳定后加载特定fpga ip (要不内核崩的一塌糊涂)
- fpga 稳定复位
- 软件决定fpga ip 加载的时序
dluash load /usr/local/scripts/si5512_setup.lua
usleep 30
mkdir -p /lib/firmware
cp -rf /usr/local/firmare/{*.bit.bin,*.dtbo} /lib/firmware
echo 0 > /sys/class/fpga_manager/fpga0/flags
mkdir -p /sys//kernel/config/device-tree/overlays/full
echo -n "pl.dtbo" > /sys/kernel/config/device-tree/overlays/full/path
部分加载fpga 需要 fpga 工程师 进行设置
Makefile 中设备树的编译
# AUTHOR: HONGDAYU
all:
gcc -I my_dts -E -nostdinc -undef -D__DTS__ -x assembler-with-cpp -o system-top.dts.tmp system-top.dts
dtc -I dts -O dtb -o system-top.dtb system-top.dts.tmp -@
dtc -O dtb -o pl.dtbo -b 0 -@ pl.dtsi
clean:
rm -rf *.dtbo *.tmp *.dtb
之前peta 的工具链 不支持 C++ 的 异常抛出 , 现在可以了,这个就可以安心的用