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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。5 w& K4 \5 ^4 R" s" u1 k
#include <linux/init.h>* b' K; z4 c2 A9 R% a: O" k
#include <linux/module.h>
% B$ T8 q/ R6 j' n# X#include <linux/kernel.h>
' P4 w- M) o$ E. D5 b8 k# e#include <linux/types.h>- W9 P+ `9 Z, {# a
#include <linux/gpio.h>
( w& j: ~% L3 l$ q( M% _#include <linux/leds.h>5 J/ \0 @7 {+ e/ N9 r8 `# j0 p  |
#include <linux/platform_device.h>4 o* F4 X; C6 ?! {) u0 {% G

  i* r$ A( X% Q2 \#include <asm/mach-types.h>8 ^7 T& o" @8 W# k" d2 u
#include <asm/mach/arch.h>7 w- o5 h/ ?2 E8 e$ r$ z
#include <mach/da8xx.h>
# A4 N0 [1 p9 M! t3 U, M0 M#include <mach/mux.h>
! g7 c* @) L, K6 k8 S: k
/ n2 y2 ]3 y' z4 m. `4 X$ M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 h, U! p/ K/ j0 E" h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 r) \2 P' }' p5 O( ?! u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ d& L  |/ X: V' U- {* |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 ?9 r; P1 ]5 H* U1 y; u
" N' N: {, a+ H/ E5 y/* assign the tl som board LED-GPIOs*/" i0 H% \7 B4 B3 z; a, N- o
static const short da850_evm_tl_user_led_pins[] = {# \' J) G% [5 u# ]# d7 f) B* A
        /* These pins are definition at <mach/mux.h> file */* I5 z, n* {- F5 @. S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% S& y6 ~9 r% |8 L2 r        -1
& I7 z6 l3 b. V9 {};5 q( t. E- w5 Q) n9 `/ q  f9 G. N
! ^4 `8 H8 Q" Z: N. i) Q3 q
static struct gpio_led da850_evm_tl_leds[] = {2 q, J6 q7 [7 ]% h& x/ G+ R0 D- O
        {0 D' H- v# d' G
                .active_low = 0,
% n& x) x' X9 L$ R  j8 x) _                .gpio = DA850_USER_LED0,/ {5 G; k1 Q: d) n* y
                .name = "user_led0",( |" U9 w; I! D. g3 A: [! R
                .default_trigger = "default-on",
! U7 f% N( N) l: ]; {        },  R. o& ]3 ~( u4 t; T* q
        {/ c: |! Y! n% Y
                .active_low = 0,& \/ \  f4 W3 u6 y6 @# r4 h
                .gpio = DA850_USER_LED1,! o. j3 e$ b) ~" o1 f
                .name = "user_led1",
8 k: l$ w, ]) X# R5 W% Q                .default_trigger = "default-on",
: x2 N  q" y+ ^        },3 l* B4 t7 W5 ]8 H9 |
        {4 v6 x. h9 E, z5 @5 U6 q. k1 s' F
                .active_low = 0,
4 D1 T$ d! e8 @& F" V+ N% R0 ^                .gpio = DA850_USER_LED2,& x" c( |2 A% n; g# e
                .name = "user_led2",
$ Z- a; V; a0 ]/ m  i! o! |                .default_trigger = "default-on",
- [, }# W5 ^0 [: W; W$ i' S        },/ u4 B% ^& m0 K
        {$ ]1 t  ?! {& {' s) H; o* D, F
                .active_low = 0,; d% W+ o! v. j2 g
                .gpio = DA850_USER_LED3,- M5 c# V7 _4 w
                .name = "user_led3",
2 M2 S* n+ b9 d( V. D                .default_trigger = "default-on",# ^" c" s! T8 f7 h
        },% X0 P7 t1 W6 S6 k6 J( y
};
& n7 m- J( d, U$ [* o% A1 C( |: [5 \
2 ^2 u+ @0 g3 @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ n" ?2 @: C2 s# p; v. \
        .leds = da850_evm_tl_leds,; N6 K* B4 N( G0 A1 M1 z; W0 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ }) s1 k, ]. w$ f};4 g( a% d7 D* x/ g8 R3 G7 ^
, W3 k3 o, n1 r) {- J; ~
static void led_dev_release(struct device *dev)' {7 \" O- ^, @- G3 y) J. w
{
/ D9 D! ]. v# T. ^6 l* `};
1 ?0 K- }* \. G  S
2 F$ y7 e) Y& a& H8 z& qstatic struct platform_device da850_evm_tl_leds_device = {6 k# O3 k1 N. l& F8 ~
        .name                = "leds-gpio",
/ C+ g/ Y1 e! ^# V        .id                = 1,0 [/ U2 ~: G- [7 ~  T
        .dev = {( {8 h* E+ a0 w8 `" z- E4 Q3 i% U& T+ q
                .platform_data = &da850_evm_tl_leds_pdata,
8 G. P% I+ y8 T* w- u                .release = led_dev_release,2 t' L! R/ G5 ?; S
        }& U; y3 d3 m/ ~, J  [3 {2 |. \
};; N! j4 `4 M( f7 t2 O5 m

# j+ @6 F; o+ ^% B/ M  z5 }static int __init led_platform_init(void)
/ @8 S# o# l3 @1 |3 P{
9 |0 p/ ^0 w6 `4 G; m4 ~" h        int ret;" l8 V1 E2 o; ^5 F9 a5 Z" A3 H+ a
#if 02 \8 t% g% T# g; m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 U2 V) V8 J! H. I; t' b- e8 H        if (ret)$ ?- r, s1 S' }( j
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 a0 W) V+ Y$ x. l$ t4 ]" ]                                "%d\n", ret);8 Z/ @$ @* v; T0 T7 |
#endif
, b7 x3 y- d0 E  T        ret = platform_device_register(&da850_evm_tl_leds_device);
. L/ q  ^% H3 ^% l! y        if (ret)8 D  ]$ b. B& w  R' `2 b3 z
                pr_warning("Could not register som GPIO expander LEDS");
, I3 P% ?) E, ]: ^" V        else, i  L5 j4 c# @2 @% a& N, J4 J
                printk(KERN_INFO "LED register sucessful!\n");* P8 t1 T1 Q# M/ n1 v6 Q" M0 w* u

) z" X: p/ i0 i. |4 }+ Y$ ?0 K; b        return ret;
+ k/ D; f, i/ Z) q! k3 z: P/ r}, B8 M/ d* j# a* r

. ]/ E, v7 @/ m, C/ y& G4 ?static void __exit led_platform_exit(void)5 \! A& p$ Q# d4 O0 [
{
+ A. ~: @* M; d- p' J2 o% Z        platform_device_unregister(&da850_evm_tl_leds_device);) T% c" F- H1 G2 O2 R) N/ j6 v9 Y% {
& j, d) }& Q/ W# U
        printk(KERN_INFO "LED unregister!\n");) i: f, Z, P9 l( ^; `5 W
}
, J3 m6 Y& s3 o- ^# e) [/ N& k6 V) c$ x  O! S
module_init(led_platform_init);* D8 Q4 }- ^3 ]) x* h# D
module_exit(led_platform_exit);( v) R2 N, |& B; b$ z

3 v% Q; t2 \% ]0 q9 _4 x! iMODULE_DESCRIPTION("Led platform driver");% ?3 N  N' g0 z. Y9 A+ ~
MODULE_AUTHOR("Tronlong");
0 U% d) p8 R0 k: ]( OMODULE_LICENSE("GPL");/ \9 a2 ]9 I2 ?7 i0 m3 G
/ n: [* j& Z5 W2 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 10:05 , Processed in 0.042640 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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