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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* y/ v  b& S; H/ D) m
#include <linux/init.h>
$ b, A/ ]) o. _: I" I#include <linux/module.h>
5 ]3 J5 g0 H; ~& s; A) u#include <linux/kernel.h>
1 j+ ~& O+ a) _/ ]5 \1 k#include <linux/types.h>
1 M( G$ R; i$ Y' k! ^#include <linux/gpio.h>" H- H7 y7 E' C1 H4 Q/ c3 J
#include <linux/leds.h>! }! G8 x3 j2 l7 S7 b
#include <linux/platform_device.h>% }9 K. d, w7 R

" W  t9 C; O# G0 [% O#include <asm/mach-types.h>
7 t* y- ?1 w# w. s9 _5 M+ W#include <asm/mach/arch.h>
1 M( M: }  Z) B#include <mach/da8xx.h>
2 J: r: Q3 D! [# Q& e  x$ ~" i#include <mach/mux.h>
5 [' Y2 S' `) T: h: A5 F  A4 p+ ?
# y/ c6 l: [5 D# n/ u9 D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 v! H1 J6 I* f- M, F+ @& x3 f" {) c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 `' ]. Q$ X8 [8 ]7 g- }* R$ X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 F& k* |1 Y* L9 B* O' V- [' I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 q! G1 h+ L9 a! Z) J# b' G3 y3 o9 e3 r8 N' b" k+ c0 m8 K
/* assign the tl som board LED-GPIOs*/% p; i' I) Z1 }, |
static const short da850_evm_tl_user_led_pins[] = {( T- ~: F) w2 W7 H* w
        /* These pins are definition at <mach/mux.h> file */' M. i$ D& g. h- p  c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* i& X1 d8 `# R) @. a( J: U# q
        -1
$ i/ C8 J* j% w; p& a8 l/ ?7 f};
( p( r9 ~+ S  w, A" R5 K0 {( G, s' ]& C4 C) e4 \, W! H) A% B; T
static struct gpio_led da850_evm_tl_leds[] = {: `9 O$ u. j) A# E6 ~, a! A$ Z
        {
6 r4 [  k; ?, \* z8 Y2 H* D2 {                .active_low = 0,
; N9 E! j- r2 g  ^8 V                .gpio = DA850_USER_LED0,
+ s# H5 d, |4 L: z' |4 ]% `                .name = "user_led0",# f& S* p6 i' j( N9 w0 y3 {
                .default_trigger = "default-on",
7 s, w0 u& O* Z% R: m        },) Z4 v! H6 @' x. _1 g$ k6 U
        {
- @9 p: L  H$ F( A8 j' }                .active_low = 0,
) B/ ~5 w# ]: {, Z- E$ o7 ?                .gpio = DA850_USER_LED1,% _/ i: o+ v# y, W$ [
                .name = "user_led1",( f9 o# U% V" a/ ]* K5 E; Z
                .default_trigger = "default-on",, x" i8 G  l$ B% s# l3 U( ?2 r+ s
        },- V7 m5 _6 c0 A
        {
: A* O& K. I: K5 {; S9 \) v                .active_low = 0,& A; m% ?/ n2 T+ g$ W8 N+ L9 p
                .gpio = DA850_USER_LED2,
8 j! p9 f) j. L: f                .name = "user_led2",
( L: @2 W" B% L+ z                .default_trigger = "default-on",: g6 O+ e, c% v; w& Z: h: X
        },: i8 U- h: i- Z* X4 v) g% Z4 ~2 E, V
        {
: K5 Y# D' s4 W, d) J# f- [                .active_low = 0,
: Y$ N) }$ b2 s! m3 z* p                .gpio = DA850_USER_LED3,
) c. U6 Q& J, O6 ^: A                .name = "user_led3",5 M5 f4 g" C' a  r1 m6 C) X
                .default_trigger = "default-on",
! `5 g- B3 B/ U        },# Y$ }! r. O: T6 W* H& b
};
6 q1 E2 B2 }( S, }0 [2 j, ?
; z3 ]) v- S: g% b5 s% tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: a% x' F' F. o" P, ]( t$ m/ z  t
        .leds = da850_evm_tl_leds,' M0 a  Y4 ~$ Q! u( ]& |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; W8 x, O: T$ y: w# [  H4 e2 P};
7 B' J- L5 u1 k1 W
2 t% p2 V6 I$ f4 |  X7 d* wstatic void led_dev_release(struct device *dev)+ O* {* v8 T, D$ K! T3 d) S' m
{
  B; p* B# l  \( z% @+ ]+ ?};
) A  c: ?7 S8 n. t0 H; F
" N# v# }1 m8 V. vstatic struct platform_device da850_evm_tl_leds_device = {
0 B" i& {1 @' o0 o        .name                = "leds-gpio",
$ k! R; i) m/ p* |  L        .id                = 1,, z* D. q. u; E* p6 {" m8 `8 J
        .dev = {
$ r! A: S9 A& P. i2 B- U                .platform_data = &da850_evm_tl_leds_pdata,
7 A/ k% X* m( w! u5 Z+ p+ s                .release = led_dev_release,+ ]( u) R# q8 ^( U0 Z: o( L
        }' H/ t0 d& B( F# s
};
$ u& w3 t' T; K. W4 T0 ^
) `( L+ E" Z7 gstatic int __init led_platform_init(void)' {' Q0 A" y0 i& K0 W
{4 t' U5 i( X8 G, f$ k4 j
        int ret;
# c. n: O& ?" C#if 0
5 w( Y5 ~- N! `' j4 D1 Y5 X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ I( S2 }, O  n  R( z, n; Y        if (ret)5 U: A* {$ n: V# n8 o) {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 [+ s7 f  v3 B/ k                                "%d\n", ret);6 U/ E% w/ h" i# y% x* r
#endif  U: r# q! F: i
        ret = platform_device_register(&da850_evm_tl_leds_device);
# W/ b4 _- V2 p* A        if (ret)
7 b- }# B* y3 |/ G                pr_warning("Could not register som GPIO expander LEDS");
" T' y9 b, P9 G1 L6 a+ v        else
  Q6 \3 ?  ^' D/ R; S5 Q                printk(KERN_INFO "LED register sucessful!\n");
+ \+ j( A( ~- l0 K0 N8 a" n3 G! v- a# B' }% c- @  h9 t% q
        return ret;% a6 Z, \8 j9 D) u
}& X9 r2 @. M3 [7 q! D1 q/ }

% @5 A9 x4 ^3 z. Q: F& k7 X- ustatic void __exit led_platform_exit(void)" V+ z& F" U) e/ S% M* \
{
* B& s; x& \9 }. L, g3 [        platform_device_unregister(&da850_evm_tl_leds_device);
3 B8 x% s: B% w2 |
& o  d! w- F5 ]2 p        printk(KERN_INFO "LED unregister!\n");/ |2 y' n/ N: u, ?5 z' ~+ N" r* j
}8 P3 m$ B: p! y7 s$ v
8 i3 T. O$ [, D, ]/ i/ Z
module_init(led_platform_init);
. Y/ d3 _. {- z" l; umodule_exit(led_platform_exit);
0 b+ n7 q7 b& L/ D
. K9 J" M. \3 f$ P8 i" G6 [MODULE_DESCRIPTION("Led platform driver");: B4 F% G8 f: j1 B; A2 e0 v2 y
MODULE_AUTHOR("Tronlong");  G" P, @$ A5 |+ x0 h
MODULE_LICENSE("GPL");
1 V! s2 h9 Z3 z8 a# ~$ r
7 L  }! F4 p* S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-19 20:30 , Processed in 0.039392 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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