stm32上跑uclinux有可行性吗?1MB sram的。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32上跑uclinux有可行性吗?1MB sram的。相关的知识,希望对你有一定的参考价值。
听说ST 开发出针对于stm32的uclinux系统。但是不了解uclinux在stm32上跑是否可行。我以前用过linux内核,光内核就2M。我们的是ARM9的开发板,SDRAM容量64M的。可是现在STM32用的只能是SRAM而且最大也不过是1MB。能跑得动uclinux吗?就是内核跟行了,应用呢?<a apporig="53855" target="_blank" onclick="javascript:return redirectWrapped(this);" class="thirdAppLink" href="http://www.usr.cc/forum.php?mod=redirect
参考技术A 可以的,虽然不能用特别强大的功能,但是说,是可以用的。 参考技术B 绝对可以加载μclinux,可以裁减啊。 参考技术C ST官方已经发布了他们自己的uclinuxfor
stm32,我想应该是可以的。 参考技术D 怎么不可能?虽然以前你用的是64M SDRAM,但主要是装code的,运行时需要的内存并不是很大。运行时需要的内存主要指stack,heap,bss, sdata... 第5个回答 2012-11-27 主要是你说的RAM大小问题,交叉编译链和元mmu都是好的
P4843 清理雪道(上下界网络流)
上下界最小流
我们先搞一遍上下界可行流(转)
回忆上下界最大流的写法:在可行流的残量网络$s\\ -\\ t$上跑最大流,答案为可行流$+$残量网络的最大流
那么上下界最小流的写法呢?
只要在残量网络$t\\ -\\ s$上跑最大流,答案就是可行流$-$残量网络$t\\ -\\ s$的最大流辣
#include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; #define N 1005 #define M 1000005 const int inf=2e9; int n,S,T,pS,pT,ex[N],d[N],cur[N]; queue <int> h; bool vis[N]; int cnt=1,hd[N],nxt[M],ed[N],poi[M],val[M],fr[M]; inline void adde(int x,int y,int v){ nxt[ed[x]]=++cnt, hd[x]=hd[x]?hd[x]:cnt, ed[x]=cnt, poi[cnt]=y, val[cnt]=v, fr[cnt]=x; } inline void link(int x,int y,int v){adde(x,y,v),adde(y,x,0);} inline void ins(int x,int y,int l,int r){link(x,y,r-l),ex[x]-=l,ex[y]+=l;} bool bfs(){ for(int i=1;i<=pT;++i) vis[i]=0,cur[i]=hd[i]; h.push(S); vis[S]=1; while(!h.empty()){ int x=h.front(); h.pop(); for(int i=hd[x];i;i=nxt[i]){ int to=poi[i]; if(!vis[to]&&val[i]>0) d[to]=d[x]+1,vis[to]=1,h.push(to); } }return vis[T]; } int dfs(int x,int a){ if(x==T||a==0) return a; int F=0,f; for(int &i=cur[x];i;i=nxt[i]){ int to=poi[i]; if(d[to]==d[x]+1&&(f=dfs(to,min(a,val[i])))>0) a-=f,F+=f,val[i]-=f,val[i^1]+=f; if(!a) break; }return F; } int dinic(){int re=0; while(bfs())re+=dfs(S,inf);return re;} void del(int x){for(int i=hd[x];i;i=nxt[i])val[i]=val[i^1]=0;} int main(){ scanf("%d",&n); int tt,pi; S=n+1; T=S+1; pS=T+1; pT=pS+1; for(int i=1;i<=n;++i){ ins(S,i,0,inf); ins(i,T,0,inf); scanf("%d",&tt); while(tt--) scanf("%d",&pi),ins(i,pi,1,inf); } for(int i=1;i<=T;++i){//调整 if(ex[i]<0) link(i,pT,-ex[i]); if(ex[i]>0) link(pS,i,ex[i]); }link(T,S,inf);//T向S连inf,使流量守恒 int tmps=S,tmpt=T; S=pS; T=pT; dinic(); int Flow=val[cnt]; val[cnt]=val[cnt-1]=0;//可行流的大小即为(T,S,inf)的反向边的流量 S=tmpt; T=tmps; del(pS); del(pT);//倒着跑最大流 printf("%d",Flow-dinic()); return 0; }
以上是关于stm32上跑uclinux有可行性吗?1MB sram的。的主要内容,如果未能解决你的问题,请参考以下文章
STM32怎么移植UCLinux-STM32-F0/F1/F2专区