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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 y* l4 J, C0 Q+ m) s; ^. A8 E9 @#include <linux/init.h>
( b. I- h3 t, I0 Z#include <linux/module.h>
# w1 ?  F, V/ W1 V* {- H#include <linux/kernel.h>
7 y1 [0 N; n5 H) ~) R2 k+ N9 B% R#include <linux/types.h>
6 V/ V2 w7 ?# |  n# q9 h#include <linux/gpio.h>
$ Y9 ^" v' e( I8 J) R$ R#include <linux/leds.h>: E( R0 l* e; g0 P# S7 C) N
#include <linux/platform_device.h># Q8 b  |' [+ d6 n6 q1 J

! [2 q+ R, }: f$ O#include <asm/mach-types.h>1 n5 y- m$ i! Q* U: r- Q
#include <asm/mach/arch.h>* C+ A7 a, y) J  p8 O+ `) l
#include <mach/da8xx.h>
' u4 C* r0 O4 `" R/ a; d8 I( j#include <mach/mux.h>
& c) e* ~3 E1 I
9 X5 w5 ~5 ~0 e: M3 R0 P3 E3 h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, M) ]$ S: e# z  A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 `3 `. O/ f5 r  b, A( y9 T  C4 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 u9 R% O  F% m4 Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 |2 Z$ A/ F+ Z- L* T9 m$ D, j% c2 u. {: p+ G
/* assign the tl som board LED-GPIOs*/
2 }+ [0 L5 z5 z) C! g! q4 {static const short da850_evm_tl_user_led_pins[] = {
# ?1 k; S/ R, m  ~* }# U% J% t        /* These pins are definition at <mach/mux.h> file */
' F& b( z7 c1 W# Z2 ?4 z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; E' W6 B' ^( c% Y4 p        -1
0 B; a9 n- Z5 Z& M" Y};3 c& y; T# u; U1 a- z
# D9 A- z& m/ N$ k% H, _; ^/ [* y; K
static struct gpio_led da850_evm_tl_leds[] = {! y$ a$ T" ~  E
        {. a3 h+ i( ~5 J* A4 o# g! N
                .active_low = 0,$ o) d* g# L( }, k" C: z  o6 s
                .gpio = DA850_USER_LED0,
& I& `' J) C" _% f  D2 ]                .name = "user_led0",# m: Z6 {- A+ y5 @8 p+ Z; n1 Q- R7 a
                .default_trigger = "default-on",
* c" U$ U; J: @7 ], f9 A        },6 r- u! ?. f+ p) Q
        {
. C3 P- S& F+ m0 {+ O                .active_low = 0,+ W7 f  c, y2 t- D' z! f
                .gpio = DA850_USER_LED1,
8 k1 D% ]- w% @                .name = "user_led1",/ F$ f& g0 B+ S7 }; `# u- L" A
                .default_trigger = "default-on",
8 D9 d& g" Z( h7 z) `3 B, `        },
0 s, X: t# `* a9 d        {
8 v7 {6 B, V2 c, T" `                .active_low = 0,3 R2 ~9 O4 X- v$ k9 l. ^
                .gpio = DA850_USER_LED2,
8 Z# I, k: _$ c                .name = "user_led2",% d1 ?) s8 P, j! d
                .default_trigger = "default-on",
, G7 Y* p5 M  A  P8 E7 C- `        },7 o3 o6 w) S+ s$ j6 j0 p+ N6 \
        {( B4 i" c) ~# ^- ?& Y! r# m$ F1 b
                .active_low = 0,
; t! G" \, h, Q7 \; {                .gpio = DA850_USER_LED3,
; b) w; Q. ?/ h' m* f                .name = "user_led3",
# ~5 ~7 A, ~! W4 @7 s                .default_trigger = "default-on",
' a& a& j1 N% J6 F        },- [! r$ J& X5 Z( {1 O% _
};9 H* K, I8 @; u0 C, C

9 S" s' |2 ]8 U9 Sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# H. V+ a! O9 \4 R6 D        .leds = da850_evm_tl_leds,
5 ^$ p' W) c4 q7 n        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 c; m, ^& P0 i; }
};; b; B1 f; x% B- [
, k/ v: N: x7 p) k, K
static void led_dev_release(struct device *dev)
7 _) h- R5 V, v; }( B7 {8 C8 l{
, }/ U* ?# p- L. S};/ m' u! V% U/ S! ~& W* O

, U& H' C9 h% v  ?/ c2 lstatic struct platform_device da850_evm_tl_leds_device = {
5 V3 s3 \( H( ^9 c& u        .name                = "leds-gpio",/ {/ j4 \7 }. d% q; L  ?& q: {
        .id                = 1,8 |+ Z3 W8 Z1 h9 d4 Q
        .dev = {
( k, T( h7 o' n* q7 s, @/ Y                .platform_data = &da850_evm_tl_leds_pdata,
% b, m3 a5 l  ]                .release = led_dev_release,: I; J8 _6 H! Y% J- t
        }$ D: _5 k. ~+ G2 u; b. \( n2 Y
};9 b% r! b. Z- Y3 N6 C9 F4 I

+ r2 ?) x' P. ~+ X* Istatic int __init led_platform_init(void)# Y% n: N& Y8 P+ m5 t# X
{
* C, Q' c: b# C- X, ?        int ret;
+ i" X* F# g. T+ M0 Q9 f& N#if 0% H8 K* M; M$ I# x7 R2 L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 l$ Z& F: I0 {; `        if (ret)
8 @1 E& W" N# c! b: P                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" o( Q/ n0 j9 P$ E+ [
                                "%d\n", ret);
: E% F. s. Y; ]( j5 J0 p- u#endif- U5 y9 _$ S1 h% J) _
        ret = platform_device_register(&da850_evm_tl_leds_device);% Q* \: p6 y1 |  v# \, N. `
        if (ret)1 N0 @- Z, P8 i0 R
                pr_warning("Could not register som GPIO expander LEDS");: |: @: Q! H1 h( R. U% j" E& m
        else  [. {0 l3 Z3 g1 G: O% K
                printk(KERN_INFO "LED register sucessful!\n");0 J7 ^9 i' q$ `

  L$ T( M& M5 I* Z: O; M        return ret;
) v. V9 |$ P+ V& Q' b* c}6 O: \- d& c5 P& b
6 A* R' J0 U& G$ f4 I2 u9 E: {
static void __exit led_platform_exit(void)
: }  I# Q# P7 G  p- R9 n# V: b{
9 w( C. o3 Y4 a% l% q% s: c: G1 y        platform_device_unregister(&da850_evm_tl_leds_device);0 D0 Z) B3 T7 M0 P" T( Q+ M: X5 w
# J; r  I7 v) f4 _4 W: J
        printk(KERN_INFO "LED unregister!\n");
4 m- p. M4 z4 _" v. H}( Y  k4 [1 N4 s" {8 X

8 I! e, Y/ O9 J/ K- q8 P, Wmodule_init(led_platform_init);$ H* T; O) Q: [7 C5 O
module_exit(led_platform_exit);
; i4 w- P; g& m& e/ h! H
( i( q5 z3 e4 x4 v' J. gMODULE_DESCRIPTION("Led platform driver");
( l  E/ y) I& X' CMODULE_AUTHOR("Tronlong");- y# K& ?; q+ c5 M  F! f- a
MODULE_LICENSE("GPL");
3 ~9 ^# r; u8 U, q3 Y7 J
& z! I: T! J  E; O0 ^2 a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 12:45 , Processed in 0.040418 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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