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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( Z* L$ o/ M# k$ L: W: ?7 |& V4 B: C
#include <linux/init.h>
3 x+ r/ z7 D% N$ ^4 Z5 S#include <linux/module.h>9 z3 \! t# C5 K" E+ X  o- f' U
#include <linux/kernel.h>
- @" f/ H( f8 I. A# z#include <linux/types.h>/ [4 v. C) o7 h$ t/ c0 j& Q. l! }
#include <linux/gpio.h>0 g7 J1 `6 P2 Z; y
#include <linux/leds.h>0 H3 ?& F" H8 i* Q9 {! M1 x
#include <linux/platform_device.h>) i) V8 F9 N. @  W' ]

. `# p+ y) m0 n/ Y9 [8 y#include <asm/mach-types.h>) @6 n  C; f2 D9 p
#include <asm/mach/arch.h>
# O" y0 t0 d  N9 N! x9 b#include <mach/da8xx.h>, k7 g# {( q6 X2 e' N# [
#include <mach/mux.h>
- B& m. M( `  \3 a, K: y$ f8 D# j7 R5 f& {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) M0 b! o0 U2 G4 B#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). C; U; g. ^$ R1 ~# K
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% q8 P/ f8 y9 v/ }: a- ]#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ a# P3 b. @2 N/ [3 l/ U* y" n, @, G$ Z# t/ g( j& G
/* assign the tl som board LED-GPIOs*/
3 r& e# F% d* v; u8 ?static const short da850_evm_tl_user_led_pins[] = {
/ a/ d% @  M* M0 M. I6 _0 h        /* These pins are definition at <mach/mux.h> file */
% x8 ]' S- {, o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) s, s0 K1 b0 k% z: N
        -1) M/ {3 m2 w" Z4 l
};* E  ^/ m6 B# j/ c
5 Y% x7 L2 L; `% q. V
static struct gpio_led da850_evm_tl_leds[] = {& `* p8 [0 f6 ?: l
        {
" w2 y( g$ l( N                .active_low = 0,; z, n0 t2 n$ l4 }/ Q1 u
                .gpio = DA850_USER_LED0,# o* U4 J- ^5 y% Z7 ?3 `
                .name = "user_led0",5 b3 S5 B7 s% l4 p7 k2 i+ H
                .default_trigger = "default-on",
; i0 Q2 E& t' L: Y) J7 h# u. M' x        },7 c$ H0 t/ d# G( b, o% }
        {8 _' d! M4 n/ e3 M
                .active_low = 0,6 M! j2 a' W8 m
                .gpio = DA850_USER_LED1,
+ }: B# f8 c6 p; k- M                .name = "user_led1",
1 j2 F4 v( g: u                .default_trigger = "default-on",$ A- }5 h+ G0 Q# m; U' R* P4 [
        },
5 h% U  X* U8 W8 X+ J; d        {
" j8 a4 z  y6 j/ k( A                .active_low = 0,0 c7 o1 {7 R/ X& a2 r3 H0 p2 I
                .gpio = DA850_USER_LED2,; p! H( \/ g5 y
                .name = "user_led2",
  \- ]4 r% a! P3 u# Q- w" v                .default_trigger = "default-on",
( E9 |! T8 s. m$ E/ m        },
  Q. [$ l& _# |2 H: ^; G$ k8 m        {/ C& N0 m9 ?+ A4 ?9 @- N
                .active_low = 0,
/ m/ h2 R- T2 z                .gpio = DA850_USER_LED3,2 @3 R, h& K# u+ x. G
                .name = "user_led3",
  q7 }: z' x3 U$ u/ S7 R                .default_trigger = "default-on",
1 e& ~, t( K4 k8 c3 W- X        },
  C3 O6 e' S/ m* j1 M};4 t0 B6 D' k  C5 t8 }3 ~
& P& J8 g' ?* p  ?) _0 s8 U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: D+ q0 l) j& w2 M
        .leds = da850_evm_tl_leds,
. y* f! {& G+ x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ z8 R, P. T/ q! B8 E; A) ]};
$ o: U; p7 d% t0 d( o7 X! C1 X! z- V3 a
static void led_dev_release(struct device *dev)# |4 F$ E, ]0 S% f! j3 O) E
{
. ?& [+ H% a& t5 v};1 k, r2 z5 d9 e8 l* r

, X, ~5 h, ?) D. ystatic struct platform_device da850_evm_tl_leds_device = {4 N3 R3 e1 x9 J! h/ m; k
        .name                = "leds-gpio",, W! I+ T/ f  \- G8 x1 c. v
        .id                = 1,+ {4 b6 t: S& h# a# e
        .dev = {) j! Y0 \" f7 Y+ }% y
                .platform_data = &da850_evm_tl_leds_pdata,# P) L, \* ]3 H
                .release = led_dev_release,2 a( P2 i% N6 d5 @1 |1 x/ H
        }
! a/ g+ X" q8 v};
8 P- \& F* B, U' H; ]4 ]7 O( l2 z; [4 ]) |+ \
static int __init led_platform_init(void)
% T+ S( y. C/ U; T! r: S{
' B: C# Y6 E" V  p" Z- _: s        int ret;
; ~/ m8 F. j* z% Z4 c( A" h( _#if 0* V% }8 e* M" e  g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ R! x. F( B) t% G' ^* _0 A
        if (ret). ]4 r  z, @- z( B; y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": u( b" c8 ]+ o" Y
                                "%d\n", ret);( z& O% b; @4 g  M/ d8 A6 R1 {
#endif
4 |* \% E( }6 \% o* n" o5 @! ~        ret = platform_device_register(&da850_evm_tl_leds_device);
  c3 B. _1 \4 u5 \* H        if (ret)
$ A1 D  {& Q  l; `                pr_warning("Could not register som GPIO expander LEDS");8 m( |( H( i; N6 @% H2 B
        else
% G$ @' |( n. H7 A1 o                printk(KERN_INFO "LED register sucessful!\n");
7 m8 \: q5 M! q: \" P6 I
. B2 n) Q8 _; V5 G& k! a4 T        return ret;0 l$ H. F0 q* n0 k# r) k# \
}9 n6 L- j+ o- ?9 C

6 P+ \# m: L. q" }5 m3 S# Q( {static void __exit led_platform_exit(void)  v  F* c/ P4 P% g5 b
{
( r! r/ Z# U* W& E6 I9 U2 m        platform_device_unregister(&da850_evm_tl_leds_device);+ m5 E! P6 e% k9 F3 I, w, U

0 a2 [& C0 E" I        printk(KERN_INFO "LED unregister!\n");) Z' l4 k" D, _1 p
}
- q  ?2 }: g& b3 i' Q  z5 F
! h1 I- H, o1 F: i; W* mmodule_init(led_platform_init);! _) W+ ?/ H& u. X5 T8 q
module_exit(led_platform_exit);
  c+ {5 I! ?9 q2 x, i/ g- V% B8 Y
2 w4 e( d  i# D- w- r. {MODULE_DESCRIPTION("Led platform driver");/ }& x4 M4 Q/ [& w: m) n8 s8 V/ j2 X# V
MODULE_AUTHOR("Tronlong");+ r" M5 j% L( j
MODULE_LICENSE("GPL");
2 Q0 x2 W8 w& y/ m6 e9 M
1 m+ N# k* r6 C+ n. J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 20:05 , Processed in 0.046577 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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