程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9398|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- q( H( z. l) f# I8 F# T
#include <linux/init.h>' o' H/ K1 i; S+ L
#include <linux/module.h>
+ r2 Z. g$ x- p+ v! ]#include <linux/kernel.h>" r, S1 S1 J8 |% t- b+ a. n
#include <linux/types.h>( X8 G$ v$ I+ ?+ u
#include <linux/gpio.h>0 H/ `8 ~8 Q. `' m  ^
#include <linux/leds.h>
4 {) e  |. L' J#include <linux/platform_device.h>
/ }8 c) y# i4 C4 S1 C) H! r8 Z) U7 M! l6 B5 U; u
#include <asm/mach-types.h>4 e5 x7 r0 f1 u5 S
#include <asm/mach/arch.h>
# ?; b. _5 \, E! I; b  T#include <mach/da8xx.h>( u3 u! T' ?- b" l
#include <mach/mux.h>( k+ D, Q1 @4 n& u0 X- \. S

( l  I# r! G& _0 I; t4 J- W7 X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  ~2 h, V. [0 E+ Z3 \# Y' r#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' Y" Q- v/ n( j4 s1 y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 j: b, A# O( W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 h8 m/ {8 r! P  k) ]2 n: A* ]) P) g. r; E$ T
/* assign the tl som board LED-GPIOs*/# d# y0 ~3 `; N- m
static const short da850_evm_tl_user_led_pins[] = {! ~( v6 T8 k4 \2 J6 k. `. I4 J1 _
        /* These pins are definition at <mach/mux.h> file */
+ e; Z# t* n; V4 Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; N3 F% d2 |' J& ]  H        -1- E5 F2 a1 u' F: r+ m' F
};
* ]& o6 L- N4 Z. V8 Y  Y. i5 S( l. R8 T0 g
static struct gpio_led da850_evm_tl_leds[] = {
5 r  h; j) o: A( z0 N5 s        {
- b8 ]  {' b" E& {$ n8 V0 a                .active_low = 0,7 |" v8 K* x7 R* h2 t- H0 N. }% f
                .gpio = DA850_USER_LED0,! Z4 x: `+ h( o
                .name = "user_led0",. Q1 A. w: `" I, Q2 L0 I
                .default_trigger = "default-on",$ O! ~9 I. `4 }* ~. {% R/ V6 I
        },& R6 x5 b) ]9 ]# U6 U& x) R0 E1 O' G
        {* d7 w$ K0 J( _" b2 A+ d: A
                .active_low = 0,1 Y/ A8 x  T/ z
                .gpio = DA850_USER_LED1,
3 x: Z6 f& E  V+ j) r4 x6 K+ y                .name = "user_led1",
/ [$ H) H; v% A) M                .default_trigger = "default-on",
2 h  p% q& `6 b; k9 m) d' h        },3 c; u) l! h: {+ n8 D6 b
        {
, E  i3 a6 K, W& }- }                .active_low = 0,
) W  A0 M, E; P* @" A+ _                .gpio = DA850_USER_LED2,
7 k5 |' T$ e/ u$ l' R1 g( t# H, W                .name = "user_led2",4 B$ H* d" ], U
                .default_trigger = "default-on",2 f9 n. H1 r3 j* f
        },2 ?& O9 w8 r, ?1 x0 M
        {
3 L$ g$ L2 M! L& P& P3 f                .active_low = 0,, K" W8 F; t, O" M& D+ u
                .gpio = DA850_USER_LED3,  R" u! r+ ~6 ^' Z8 o  e
                .name = "user_led3",5 O" h( w, X& o/ [) q9 C
                .default_trigger = "default-on",% s( s' R) l; `" K
        },
" F9 U2 z9 k# N! q6 A};! M8 U: m' u1 U) m+ ?% r) `
* L# `4 _! W3 C2 b" @' ?( v8 s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- }, k6 L% A) F' I  K        .leds = da850_evm_tl_leds,; }8 H" m  Y; s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 }% h0 e9 p" S1 |% D( J/ f
};: B# M* X* M7 l5 {2 B

# \" z8 p" K0 x$ pstatic void led_dev_release(struct device *dev)
) E: A$ V; m" _: U4 h{
9 o" K  J1 h+ O};: ~8 H2 y+ X8 i6 P6 W2 j2 g
6 x9 P; s  P  n7 |3 k# ?. E) w$ X. [
static struct platform_device da850_evm_tl_leds_device = {& [7 e8 h+ r. S) f  k, }# r6 \
        .name                = "leds-gpio",, @7 U7 i& M. ^6 o4 G3 @1 F3 Q5 E1 s
        .id                = 1,2 S# l$ R2 n  _
        .dev = {/ {9 y8 x. U5 I5 {! H, D
                .platform_data = &da850_evm_tl_leds_pdata,
( Z# E( U# r; t. F5 Q                .release = led_dev_release,
6 T3 |$ y, a  y1 b) J2 @        }
- s* [4 N/ L, d" d};
, D: `* M" [1 _& {' r, S5 g* T+ ~/ E0 [, }- w
static int __init led_platform_init(void)" s9 @- @8 d7 i# e5 y" T7 O
{
* c8 x, K- b, U# Q4 g5 Z! y& \        int ret;8 y, j# b2 O8 u7 x+ o% G; B4 `
#if 0$ ]( i" J4 y3 I/ d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# X7 t0 r6 V0 q$ }        if (ret)+ y. T1 ^- S/ |! {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 u) q# L6 O2 F3 \' d+ t1 c  G                                "%d\n", ret);. P" s! k: b* w6 e2 R! j3 |6 @
#endif8 ?: W# J9 B$ n: T! L/ _
        ret = platform_device_register(&da850_evm_tl_leds_device);2 T# L/ y5 S- B9 r/ s( }. ]
        if (ret)- b# t8 Q7 X1 V+ ~  z  ]* p0 C9 L
                pr_warning("Could not register som GPIO expander LEDS");7 n5 y5 e; {' ]. K, g, V; u" |
        else8 t* a/ C* L9 g2 v
                printk(KERN_INFO "LED register sucessful!\n");
- \9 _  }3 }* k# Y) G
' ?9 E  j2 f4 f' c        return ret;
9 H! a* X$ M. q4 E8 j}) e- E. G$ |1 d7 R; |9 Y! @7 B

! B/ C8 }+ P0 U$ H1 jstatic void __exit led_platform_exit(void), G  ?4 @2 i% U1 l- e% ]) p& i
{
- P" F  ^  H; f1 z. N/ ?        platform_device_unregister(&da850_evm_tl_leds_device);4 r+ h( n3 P$ X: j: i
* G4 x$ Y+ W" P3 j( T' i
        printk(KERN_INFO "LED unregister!\n");/ i' z6 q6 P) X( L/ G& I0 N% [
}" S8 R7 M0 B8 h" n# y9 g; q) ^, l
1 d" |& s) ^3 p" R' u; S7 N. i
module_init(led_platform_init);
% @4 G* o# C4 mmodule_exit(led_platform_exit);
' x! |8 c/ I. p$ ^, N- ], I+ x6 e$ \# k3 \/ }5 C) Y- t- M
MODULE_DESCRIPTION("Led platform driver");
* \, r% B3 I' q* j/ s6 K" A$ x. xMODULE_AUTHOR("Tronlong");
5 A4 D0 u( S! h' ^6 ~MODULE_LICENSE("GPL");
+ {4 ~3 M+ b  F1 j0 n) {! k
+ @7 b# K; a9 P2 C' Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-17 08:18 , Processed in 0.039762 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表