1.跳转到c代码 因为内存中的代码来自于垫脚石SRAM,他们是相同的. 采用绝对跳转方式来完成. 因为我们是从汇编代码跳转到c语言的程序,所以我们要提前准备一个main.c文件. 修改makefile 2.验证看跳转成功没有 使用c语言来点亮led 汇编中的led点亮 在c语言当中地址一定要有类型的故…
bootloader通常会分为两个阶段:第一阶段采用汇编语言来编写,主要是一些核心的初始化工作(内存,时钟的初始化),第二阶段使用C语言来编写,主要是它会完成一些板载硬件的初始化(串口,网口)然后其启动我们的操作系统.所以我们需要先搭建好C语言环境.-----------------------------------------------------栈的初始化(只有一行,但信息量巨大,而且非常重要,对以后嵌入式的学习起了至关重要的作用):栈:一种后进先出性质的数据组织方式.满栈:当堆栈指针s…
1.概念解析 ARM系统使用的是满栈! ARM采用降栈!!! 栈帧 每一个进程会有一个栈,该进程中的每一个函数会分割栈的一部分,那么每一个函数使用的那部分栈就叫做栈帧.那么所有栈帧组成了整个栈. 子函数func里面保存了main函数的上边界FP和下边界SP. 2.栈的作用 保存局部变量 代码样例 编译之: arm-linux-gcc -g  stack1.c -o stack1 反汇编之:arm-linux-objdump -D -S stack1 >dump dump里面的结果 首先是push…
1.为什么要混合编程 汇编语言:执行效率高:编写繁琐: 执行效率高:能够更直接地控制处理器. c语言:可读性强,移植性好,调试方便. 1.汇编调用c函数 2.c调用汇编函数 汇编语言定义的函数(标号),需要把它定义为全局的. 在start.s中修改 在main.c中修改 3.c内嵌汇编 1.格式 输出部分:在使用汇编语句过程中,可能会把c语言中的变量的值修改了,就把这些变量放在这个部分. 输入部分:是在使用汇编时,从c语言中拿到一些参数来使用. 破坏描述部分:就是修改了某些寄存器的值,然后把对应…
1.BSS段的作用 初始化的全局变量存放在数据段: 局部变量存放在栈中: malloc的存放在堆: 未初始化的全局变量存放在BSS段: 找到bss段的起始与结束地址,往里面添加0,便初始化好了. 打开连接器脚本…
kali linux Python 黑客编程1 开发环境初始化 为什么要选择Python? Python作为目前Linux系统下最流行的编程语言之一,对于安全工作者的作用可以和C++相提并论.Python提供了丰富的库供调用,丰富的第三方扩展模块.在网络应用,文本解析方面,Python编程有着其他语言无可比拟的优势.同时Python也是面向对象并且跨平台的语言,可以在linux/Unix.OSX.windows上无障碍运行. 1.1 查看Python版本信息 Kali Linux默认已经安装了P…
逻辑很简单: 1  app内所有activity继承自BaseActivity或BaseActivity派生出来的子类,BaseActivity中维护了一个静态的 app Activity访问栈,在创建和销毁时会执行压栈和出栈操作,所以mLocalStack内维持的是app中正在运行的activity. 2  将app的语言环境存储在SharedPreferences中,避免app重启时修改状态不改变:在BaseActivity创建时取出语言环境字符串并初始化Activity语言环境(initL…
C/C++程序中,locale(即系统区域设置,即国家或地区设置)将决定程序所使用的当前语言编码.日期格式.数字格式及其它与区域有关的设置,locale设置的正确与否将影响到程序中字符串处理(wchar_t如何输出.strftime()的格式等).因此,对于每一个程序,都应该慎重处理locale设置. C locale和C++ locale是独立的.C locale用setlocale(LC_CTYPE, “”)初始化,C++ locale用std::locale::global(std::lo…
1.虚拟内存下C语言环境 2.main函数调用 3.栈调用 每次函数调用,在栈中分配一个栈帧,寄存器通过持有该栈帧的基地址,并上下偏移,访问形参和本地变量, C语言形参为一个字大小,所以通常传指针,这也是C高效的原因. 4. 命令行参数 5.函数返回 6. 全局变量 全局变量存放于数据段,于编译时完成初始化. 全局变量的地址被组织到地址表,cpu通过持有该地址表的基地址,访问所有全局变量.…
想切换操作系统的默认语言环境,可以使用如下命令,而不用重新安装系统: 查看操作系统的语言: # env | grep LANG 使用root导入要使用的系统语言: # export LANG=en_US.UTF-8 重新配置本地语言环境: # dpkg-reconfigure locales 会弹出一个窗口,要求你选择系统要使用的本地语言.如图所示: 选中后,不会立即生效,需要重启即可生效.…