ubuntu 16.04 环境下编译S3C2440平台总结 (更新)

使用buildroot制作交叉编译器 虚拟机:VMware Player linux开发环境:centos6.8 开发板:fl2440(s3c2440处理器) 一:了解Buildroot:         buildroot是一组makefile和补丁,可简化并且自动化构建嵌入式系统环境的过程,也就是可以用它来制作交叉编译器、根文件系统,把u-boot、linux kernel集成到buildroot中一起编译。 阅读详情

2440工程代码 https://github.com/tgni/my2440.git,该工程是当初移植飞凌2440开发板所做的工程,移植过程也是简单粗暴,并没有仔细研究细节,有不足之处,请多多包涵。

1. 使用openocd烧写S3C2440的nandflash

    a) 准备工作:sudo apt-get install openocd
    b) openocd 需要配置自己的openocd.cfg,配置文件可以放在当前执行openocd的目录,也可以是用参数-f指定。我目前的openocd.cfg配置如下:
    source [find interface/jlink.cfg]
    source [find board/mini2440.cfg]
    c) openocd的配置脚本目录在/usr/share/openocd/scripts, 其中
    修改了jlink.cfg的配置:adapter_khz 250
    修改了mini2440.cfg的配置:
        #nand device s3c2440 0
        set _NANDNAME $_CHIPNAME.nand
        nand device $_NANDNAME s3c2440 $_TARGETNAME
    以便能够烧写nandflash.
    d) 烧写步骤:
        1. 打开终端 openocd -f /YOUR_PATH/openocd.cfg, 提示能够正确识别s3c2440
        2. 打开另一终端: telnet localhost 4444

        出现如下信息:
        tgni@B460:~$ telnet localhost 4444
        Trying 127.0.0.1...
        Connected to localhost.
        Escape character is '^]'.
        Open On-Chip Debugger
        >
        执行 halt

        > halt
        target state: halted
        target halted in ARM state due to debug-request, current mode: Supervisor
        cpsr: 0x20000093 pc: 0xc0731dec
        MMU: enabled, D-Cache: enabled, I-Cache: enabled
        >

        nand probe 0
        nand erase 0 0 0x60000 #大小必须是0x20000(blocksize)的整数倍
        nand write 0 u-boot.bin 0
 

2. 利用buildroot制作交叉编译工具链。

    a) 使用版本buildroot-2014.02
    b) buildroot的编译
        make mini2440_defconfig
        make menuconfig
        make
    生成的toolchain在output/host目录,值得一提的是,buildroot可以编译整个mini2440的uboot,kernel和fs。这里我们不去尝试了。因为默认编译的uboot网络有bug,一直checksum bad...
    我生成的toolchain版本是arm-linu-gcc v4.7.3.
    buildroot编译过程中遇到的错误都是简单的问题,大部分是因为系统太新,头文件找不到或者结构定义找不到,修复一下就没问题了。
    生成的toolchain放在/opt/toolchian/目录下,并且export PATH=/opt/toolchain/usr/bin:$PATH
    如果是tcsh则使用set path = ($PATH /opt/toolchain/usr/bin)
 

3. uboot 编译

    已经移植好的uboot-2010.06编译生成uboot.bin
 

4. kernel的编译

    进入kernel目录,
    cp my2440_config .config
    make menuconfig
    注意:我这里选择的是 ramfs, 所以进入
        General setup  --->
             [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
             (/home/tgni/my2440/root-2.6.30.4) Initramfs source file(s)   
    选择正确的rootfs目录,其他默认即可。
    编译过程可能遇到错误,细心排查即可。
    kernel生成zImage没办法使用uboot直接加载,需要通过uboot生成的mkimage工具来制作uImage。
    具体命令如下:
    mkimage -n 'tekkaman' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
    
    mkimage 选项定义:
    参数说明:
        -A 指定CPU的体系结构,可用值有:alpha、arm 、x86、ia64、mips、mips64、ppc 、s390、sh、sparc 、sparc64、m68k等
        -O 指定操作系统类型,可用值有:openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos
        -T 指定映象类型,可用值有:standalone、kernel、ramdisk、multi、firmware、script、filesystem
        -C 指定映象压缩方式,可用值有:
        none 不压缩(一般使用这个,因为zImage是已经被bzip2压缩过的自解压内核)
        gzip 用gzip的压缩方式
        bzip2 用bzip2的压缩方式
        -a 指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载
        -e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头)
        -n 指定映象名
        -d 指定制作映象的源文件
 

5. rootfs的注意点:

    因为rootfs的制作是我之前已经制作好的。根文件系统的制作参考blog

    Tekkaman Ninja
    http://blog.chinaunix.net/uid/20543672.html

    但是一些使用mknod命令制作的文件会失效,小心看tar包的提示。
    tar: Exiting with failure status due to previous errors

    root-2.6.30.4/dev/null
    tar: root-2.6.30.4/dev/null: Cannot mknod: Operation not permitted
    root-2.6.30.4/dev/console
    tar: root-2.6.30.4/dev/console: Cannot mknod: Operation not permitted

    因此:进入 dev目录:
    mknod -m 600 console c 5 1;mknod -m 666 null c 1 3; (need root)
 

6. uboot 烧写总结:

    a) ubuntu tftpd 服务器搭建
        sudo apt-get install tftpd-hpa
        sudo vim /etc/default/tftpd-hpa3
        输入如下:
            # /etc/default/tftpd-hpa
            TFTP_USERNAME="tftp"
            TFTP_DIRECTORY="/home/tgni/tftpboot"
            TFTP_ADDRESS="[::]:69"
            #TFTP_OPTIONS="--secure"
            TFTP_OPTIONS="-l -c -s"
        sudo service tftpd-hpa start
    b) 将u-boot.bin, zImage.img 放入/home/tgni/tftpboot, 这里tftpboot的权限是777
    c) 烧写bootloader
        tftp 0x30008000 u-boot.bin
        nand erase 0 0x60000
        nand write 0x30008000 0 0x60000
        其中前面256K是boot, 128K是bootconfig
    d) 烧写kernel
        tftpboot 0x30008000 zImage.img
        nand erase 0x60000 0x500000
        nand write 0x30008000 0x60000 0x500000
    e) 因为是ramfs,所以不需要额外烧写rootfs分区了。
    f) 设置bootloader自动加载内核
       bootloader环境变量
        u-boot2010.06@Daniel # printenv
        bootdelay=3
        baudrate=115200
        ethaddr=08:00:3e:26:0a:5b
        ethact=dm9000
        filesize=4E6590
        fileaddr=30008000
        netmask=255.255.255.0
        ipaddr=192.168.2.105
        serverip=192.168.2.15
        bootcmd=nand read 0x30008000 0x60000 0x500000;bootm 0x30008000
        stdin=serial
        stdout=serial
        stderr=serial
       命令为:
       setenv bootcmd 'nand read 0x30008000 0x60000 0x500000;bootm 0x30008000'

       saveenv

 

移植最新4.19.8内核至JZ2440——根文件系统制作 一、准备编译环境和工具  系统:ubuntu16.04 源码:https://busybox.net/下载最新busybox-1.29.3.tar.bz2 二、制作根文件系统 1、解压 tar -xjf busybox-1.29.3.tar.bz2 2、make menuconfig, 这里我使用静态库的方式编译 Settings   ===>Build Options ====... 阅读详情

相关推荐

Arm-Linux嵌入式开发环境搭建:交叉编译+Qt+FL2440实战指南

Arm-Linux是嵌入式Linux开发的核心范式,其本质是通过交叉编译工具链在宿主机上生成可在ARM目标板运行的可执行程序。该技术依赖宿主-目标分离架构,关键在于工具链匹配、头文件与库的ABI一致性,以及运行时环境(如Framebuffer、QWS)的正确配置。其技术价值在于可控性强、资源占用低、贴近硬件,广泛应用于工业控制、教学平台和轻量级IoT设备。典型应用场景包括基于S3C2440等经典SoC的Qt嵌入式GUI开发、U-Boot/Linux/BusyBox系统构建及裸机调试闭环。本文以FL2440开

baochuanying9531的博客 458

buildroot编译常见错误

264452对应的16进制为0x40904,对应编译器版本来说就是4.9.4。搜索:libfakeroot.c。搜索c-stack.c。在该文件中增加上述代码。3、make 编译错误。

gz521125的博客 5062

CARLA仿真平台源码构建三重耦合原理与实操避坑指南

CARLA作为工业级自动驾驶仿真平台,其核心是UE4引擎、CARLA项目与Python客户端三层深度耦合的构建体系。理解这种耦合机制,是解决90%安装失败、ImportError和版本不匹配问题的前提——它决定了CARLA不接受‘近似版本’,只认精确commit hash与绝对路径;不信任全局环境,只依赖纯净系统状态。该设计保障了物理仿真精度与跨平台一致性,广泛应用于算法验证、传感器建模及多车协同测试等场景。本文聚焦CARLA 0.9.12+版本的源码构建全流程,深入解析UE4源码编译强制要求、carla模

davy57345的博客 327

淘宝镜像下Electron初始化与打包过程中operation not permitted异常解决方案

目录 前置内容(可跳过) 环境配置 初始化例程 打包成exe文件 operation not permitted解决方案 operation not permitted异常分析 npm install过程中的operation not permitted 打包过程中的operation not permitted分析 前置内容(可跳过) 环境配置 下载Node.JS并安装,查...

刘之帅 3372

Cosmos 3:面向物理AI的全模态世界模型

世界模型是人工智能理解动态环境的核心范式,其本质是从感知数据中构建可推理、可预测、可干预的内部表征。随着Physical AI(物理AI)概念兴起,业界正从纯数据驱动转向融合牛顿力学、能量守恒等第一性原理的建模范式;Omnimodal(全模态)则要求视觉、触觉、力觉、温度等多源信号在统一时空与物理量纲下对齐与因果推演。这类模型的技术价值在于提升外推能力、增强仿真-现实迁移鲁棒性,并支撑机器人控制、工业质检、康复医疗等强物理约束场景。Cosmos 3正是这一演进路径上的代表性突破,它将世界模型从像素预测器升级

weixin_33904756的博客 412

VLA模型落地实战:从RoboMamba到真实机器人部署全链路避坑指南

视觉-语言-动作(VLA)模型是具身智能的核心范式,其本质是通过多模态对齐实现感知、理解与执行的统一。原理上依赖跨模态嵌入空间的一致性建模,结合状态空间模型(如Mamba)提升长序列推理效率;技术价值在于简化传统分层架构,推动端到端机器人决策。然而在工业场景中,传感器噪声、时间异步、标定漂移与物理约束等现实变量,严重削弱VLA的鲁棒性与可执行性。典型问题包括动作抖动、loss发散、光照敏感及CAN总线解码失真——这些并非模型能力不足,而是训练假设与真实系统间的鸿沟。本文聚焦RoboMamba等高效VLA模型

weixin_30333885的博客 503

ubuntu22.04下rv1109 rootfs编译问题处理

出于对Ubuntu新版本系统的体验,将系统更新到了ubuntu22.04了。然后在编译rv1109 sdk时出现了一些异常的错误。但是已经不回去了,只能硬着头皮一路走下去了。并将错误记录以下,以便下次有类似错误,做个参考。buildroot 报错:c-stack.c:55:26:error:missing binary operator before token “(“55在buildroot目录中找到c-stack.c文件,并更改c-stack.c文件中,SIGSTKSZ的宏定义。find -name c

icemou的专栏 5316

工业缺陷检测端到端实战:从标注规范到TensorRT部署

工业缺陷检测是计算机视觉落地的核心场景,其本质是解决小样本、长尾分布、强部署约束下的目标定位与分类问题。原理上需兼顾数据增强的物理合理性、模型结构对边缘设备的适配性,以及后处理与产线节拍的协同性。技术价值在于打通‘标注—训练—推理—报告’全链路可复现性,显著降低mAP瓶颈与线上漏检率。典型应用场景包括金属表面划痕识别、PCB焊点虚焊检测、汽车零部件毛刺定位等。本文聚焦YOLOv8在Jetson Orin上的缺陷检测流水线构建,深入解析标注协议、Anchor重聚类、CLAHE预处理、INT8校准及NMS集成等

张沈鹏,在路上 ... 512

制作s3c2440-buildroot交叉编译器

一、安装crosstool-ng 1、官网下载到自己创建的文件夹中:wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.23.0.tar.xz 2、解压:tar -vxf crosstool-ng-1.23.0.tar.xz 3、进入解压后的文件夹 4、指明安装路径:./configure --prefix=/home...

静待另一片蓝天 893

基于zynq的buildroot制作根文件系统

本文基于xilinx的zynq 7z045芯片使用buildroot工具制作根文件系统,并添加网络工具:dropbear、vsftpd、tcpdump、iperf3等,移植mkfs.ext4工具,并添加交叉编译器lib库到根文件系统。

STM32F103+W5500网络通信

STM32F103+W5500网络通信一、W5500模块(一)W5500以太网模块介绍(二)模块排针功能表二、 modbus协议(一)modbus协议原理(二)Modbus 通讯方式1.Modbus三种通讯方式2.在Modbus网络上传输3.以太网(modbus tcp/ip)三、参考资料 一、W5500模块 (一)W5500以太网模块介绍 D-W5500 EVB以太网模块是一款基于WIZnet W5500芯片的以太网模块,且性价比高的以太网模块。W5500是一款全硬件TCP/IP嵌入式以太网控制器,为

”一只特立独行的猪“的博客 1万+

S3C2440移植uboot之编译烧写uboot

移植环境 主 机:VMWare–ubuntu16.04 开发板:S3C24402440 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2012.04.01.tar.bz2 获取uboot 进入https://www.denx.de/wiki/U-Boot下载uboot 一直往下拉选择如下 将下载好的压缩包解压到任意文件夹,并创建source insig...

嵌入式与Linux那些事的博客 6271

macOS安装Cplex+yalmip

macOS安装Cplex+yalmip

DS 4248

u-boot 移植(一)编译环境搭建

u-boot 移植(一)编译环境搭建 `soc`:s3c2440 `board`:jz2440 `uboot`:[u-boot-2016.11](http://ftp.denx.de/pub/u-boot/u-boot-2016.11.tar.bz2) `toolchain`:[gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabi](https://releases.linaro.org/components/toolchain/binaries/7.4-201

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 5168

Excel插件开发实战:从零封装一个带自定义Ribbon的.xlam工具包

本文详细介绍了如何从零开发一个带自定义Ribbon的Excel插件.xlam工具包。通过VBA和XML技术,读者将学习到插件架构设计、Ribbon界面定制、模块化开发以及企业级部署策略,帮助提升Excel自动化办公效率。

weixin_42531128的博客 517

RandLA-Net 调通代码1:Windows 11 + Tensorflow 2.4 + S3DIS数据集【踩坑+填坑】

TF不上进啊,学学pytorch

累了就要打游戏 2482

JZ2440_V3_内核驱动程序_点亮一个LED灯

为了用内核驱动程序点亮一个LED灯,真是费尽周折,参考了韦东山的《嵌入式linux驱动开发完全手册》(以下简称《完全手册》)和网上很多人的blog,最终在@Carlos·Wei的指引下,终于点亮了LED灯,见下图! 其中的一些弯路主要是没严格按照韦东山的linux版本和其编译器来编译内核和驱动程序,二来是因为韦东山这本书当时写的不是那么详细,在理解上有些许偏差。 本文地址:https://...

multimicro的博客 1023

TSMC65nm工艺下Virtuoso仿真gm-id曲线的保姆级教程(含ADE设置详解)

本文提供了一份在TSMC 65nm工艺下使用Cadence Virtuoso绘制gm-id曲线的详细教程。内容涵盖从理解gm/id方法学、搭建仿真环境、深度解析ADE设置,到运行DC仿真、提取数据并生成对数坐标曲线的完整流程。教程重点解析了Virtuoso ADE中的关键设置与常见避坑点,旨在帮助模拟集成电路设计初学者快速掌握这一核心设计工具,为高性能电路设计奠定基础。

grpc6streamer的博客 1174

S3C2240学习资料--自看

自己搭建环境看的,设置为VIP权限。其他人没必要看。。。

u010743406的博客 604

手把手教你如何修改YOLO11的模型结构(以CBAM和可变性卷积为例)

YOLO11修改模型结构

2401_86807530的博客 1万+

Cadence16.6安装教程

如需安装所需的软件,请到文章末尾处查看 安装步骤: 安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。 试装系统:win10 64bit 1.解压安装包(共5个压缩包,每个都要解压) 2.以管理员身份运行安装程序。 3.选择License Manager。 4.点击NEXT。 5.选择I accept,然后点击NEXT。 6.选择License Manage...

谢谢关注“小鱼教你模数电”,各平台同号 8万+

mini2440上测试rockbox——【后续】

得到的结论是:分别在执行../tools/rockboxdev.sh后,生成的gcc配置版本是有差别的,早期是4.0.4,最新是4.9.4。而且mini2440的config配置中默认是没有 开启plugins支持的,但是打开后又会增加许多程序的按键未定义之类的错误,受限于mini2440本身的按键数量,这里只能定向到触摸屏上,但仍会造成系统运行崩溃(可能跟SD卡读写有关);但作为技术研究可以尝试移植到新的cortex-m平台,包括目前国内的硬件厂家发力,像瑞芯、全志、炬芯,可以尝试一些移植学习。

民工yofa2008 622

用 Custom Entity 打造 RAP Value Help:从能跑到好用的深度踩坑笔记

本文介绍了在RAP项目中实现Value Help(Fiori输入帮助)的完整流程。通过Custom Entity方式,开发者可以灵活构建不依赖数据库实体的值帮助功能,但需手动实现CDS原本提供的过滤、排序、分页等能力。文章以一个典型场景为例,详细说明了如何为Partner维护界面的City字段创建可搜索的值帮助,包括创建查询实现类、绑定CDS Custom Entity、服务发布等关键步骤,并特别指出了处理排序分页请求等常见问题。最后强调在ABAP Cloud环境下需要自行实现查询能力,而非依赖传统工具类。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 140

【实战】移植QT5.6.0到嵌入式linuxS3C2440单板

欢迎扫码关注微信公众号:柒零玖嵌入式,更多嵌入式软硬件相关分享!           目前网上关于QT5.6的移植教程还不完善,本博客详细说明QT5.6.0移植到嵌入式linux单板的详细步骤。并将移植好的分享在GitHub上。一、实验环境(1)编译工具链arm-Linux-gcc-4.4.3.tar.gz(2)linux系统linux-3.4.2(3)虚拟机16.04.1-Ubuntu(4)bu...

风雨无阻 7388

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

12GB显存本地部署Qwen3.6 35B大模型:从环境配置到API集成实战

大型语言模型(LLM)通过海量参数模拟人类语言理解与生成,其核心原理基于Transformer架构的注意力机制,实现对上下文信息的深度建模。这一技术为自然语言处理带来了革命性突破,其价值在于能够执行复杂的文本生成、代码编写和逻辑推理任务,极大地提升了自动化内容创作与智能交互的效率。在应用场景上,LLM已广泛渗透到智能客服、代码辅助、文档摘要等实际工程领域。本文聚焦于如何在消费级硬件(如12GB显存显卡)上,通过量化技术和高效推理框架,部署并优化Qwen3.6 35B这类经过后训练增强的模型,实现私有化、低成

weixin_33778544的博客 418

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: Linux内核跟踪之syscall tracer
下一篇: OPENOCD在线调试uboot2010.06, utu2440 (扬创2440v4.5)
Tgni
博客等级 码龄18年 5粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值