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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' Q5 |3 K  m$ _/ o9 P#include <linux/init.h>5 B2 }+ A; M, F
#include <linux/module.h>
+ W, P7 h4 O; U1 K+ {! v#include <linux/kernel.h>: }! @: G8 k: J, J0 M8 |2 w
#include <linux/types.h>
, x$ |1 p- g, i1 v7 \#include <linux/gpio.h>
$ d: Q2 H  p+ |2 W. x+ g# T$ t#include <linux/leds.h>& J4 K) u. `8 I) Y0 ^
#include <linux/platform_device.h>
- \: b/ _: w& S, h3 t, t+ s7 S5 w# n& T% X: o
#include <asm/mach-types.h>
- s% v! `2 L; c0 d$ l5 K5 ^#include <asm/mach/arch.h>
" d* P5 I& Q- v7 b! e3 J- r2 ^7 V#include <mach/da8xx.h>4 V: |+ ~; i0 v
#include <mach/mux.h>4 v# Q: R% \$ o" h* w* p" X. U
, }' q' C( W' f! x$ q) h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). l) H: o5 r1 T) `6 c1 N; U7 a2 o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 n. q: |6 D6 \- m- ]6 H2 r9 P; Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ P7 z4 Q3 u6 }) p& E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): G) o0 ?& K) ]' }' u# }

1 r6 D+ }; Z& y$ ^/ n4 {2 V/* assign the tl som board LED-GPIOs*/; O, M, i" C3 l" V! v% ]$ [
static const short da850_evm_tl_user_led_pins[] = {
; Z* _* w0 o6 x0 x4 J' q$ ?        /* These pins are definition at <mach/mux.h> file */
4 @9 `% d* R5 f6 l* q; D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' C) ^- B2 c8 M3 D2 w0 K/ m
        -1" m7 M4 ?9 ^& E. C
};( R7 z. C( }8 i9 F" R% W6 Z  R
8 q0 p. {2 j) o0 b  R0 v! L% n
static struct gpio_led da850_evm_tl_leds[] = {
" V+ S, g+ J+ t/ o2 S        {; @7 ^9 _9 g9 e& ^: q
                .active_low = 0,5 M7 U, V5 [' ?2 d* R1 g0 _4 ^
                .gpio = DA850_USER_LED0,. R: ]& J. o& n; _- L( Z) T
                .name = "user_led0",6 K; Y: y* i- [7 q. h
                .default_trigger = "default-on",) @5 k8 _/ [$ ^2 n: W# P& m) ?
        },' d) D0 M, k! R# Z$ @8 s; x* B; ?8 X
        {
1 i1 h1 W9 I1 B9 Y" ~. H                .active_low = 0,
) `# K( }7 L! t: j9 a  ^4 Q                .gpio = DA850_USER_LED1,3 J* h0 P. J7 u6 E5 r+ y" P7 F8 {" N
                .name = "user_led1",
" u5 _* T' k9 d$ }" \& d                .default_trigger = "default-on",
. M4 k: z# s4 J        },+ ^) n  @- Z/ Q' Q; f
        {+ f3 `0 l5 n( O8 P, n) V: l' i
                .active_low = 0,
1 D/ h0 z5 F! P1 e3 G2 T4 t6 c                .gpio = DA850_USER_LED2,- N5 f( h; N1 L/ c8 y! G9 m
                .name = "user_led2",
6 H! i# ^0 o- j, A                .default_trigger = "default-on",* j; Y# l) R  ~6 \
        },* D: N% }7 o$ k! `
        {/ `2 R9 h0 d4 a
                .active_low = 0,% V" p6 ~  ]& F6 `6 H
                .gpio = DA850_USER_LED3,8 k+ \- {" ^- D; ^) L
                .name = "user_led3",* [5 `; Y0 F) W
                .default_trigger = "default-on",/ T; t. }8 q" U
        },% V3 ^) O& o: I) F
};$ {6 ?  v% g( p* \" b6 p4 s  l7 A

! R) T- Q- ^2 D9 v" wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# N7 D5 O1 I& U6 h  M3 J3 ]        .leds = da850_evm_tl_leds,1 D* k* K% h  j# @$ R. {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( _* ~/ B# p5 F5 C};# t& k6 r! Y& i, I
, t- X- x; d, ]3 P$ p
static void led_dev_release(struct device *dev)( K6 Q% Z5 v( D, d- `3 V# n
{
1 G, F# K3 ^) W};! E; ?5 N% e( g! F

: q- @9 U8 f+ @9 C  P# w) ?static struct platform_device da850_evm_tl_leds_device = {
* \+ W8 W$ @) \4 j3 ]" ]2 ]4 r        .name                = "leds-gpio",' E; R0 y0 s2 u
        .id                = 1,
. x7 L: H/ J4 Q6 y1 x6 J$ M        .dev = {6 Y. x7 `9 s/ [
                .platform_data = &da850_evm_tl_leds_pdata,
0 \( H' }# d) Q/ ?( H$ U                .release = led_dev_release,/ t! n3 o' q6 w: q4 w9 S! N1 Z
        }
7 m* U  I6 t* U6 r+ u7 c% t; S! j};# g7 F0 {7 x( }0 t$ G

6 I2 r* m9 {  ~* mstatic int __init led_platform_init(void)
" _  i" p% C% Q0 s5 n3 H{! ~  I4 e! X* l
        int ret;4 l4 |% w" a; R# G- N% S
#if 0
6 p& r4 B& ?' d6 s0 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- a$ w3 `9 s. W$ O0 |. Y        if (ret)
. N6 `6 S% u( M. n/ V                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* b* |* n0 d/ z( }* @# E- K4 }
                                "%d\n", ret);6 i; b  k4 E2 t$ v
#endif/ i& @$ I& I. b' B' d& w
        ret = platform_device_register(&da850_evm_tl_leds_device);  b/ m. _! Z. q+ h) @+ g
        if (ret)8 h- U$ V7 j/ X1 ?1 H1 i" \# i
                pr_warning("Could not register som GPIO expander LEDS");; }2 U! `/ ]  t$ D7 n: x
        else7 f' Y' P- f1 a$ G
                printk(KERN_INFO "LED register sucessful!\n");- N/ i5 f. k9 ?- |1 A" X, Z4 X

! q5 Q0 l& |7 q6 a, X        return ret;
" r5 Y9 {' ^  Z" n5 J}' y. x: L( P- C+ D0 a/ W& }. V

( C. n, c& t* A) D8 Rstatic void __exit led_platform_exit(void)
# O  N: U4 k' d* \3 g5 H8 m. n+ j9 f{7 N2 Z0 x: @& |( x9 l
        platform_device_unregister(&da850_evm_tl_leds_device);
5 p, z1 I! g$ u. }
3 Q8 a4 t( W3 ~2 R        printk(KERN_INFO "LED unregister!\n");! ?! L; h; b- M$ ~) Q
}
, r, M% ^7 E& h4 E% [2 i- ]# G$ U1 x4 J& ~
module_init(led_platform_init);4 h$ P  w+ Y7 A. d) T
module_exit(led_platform_exit);
5 j& s8 z' `. S+ ^# u" y6 R5 ~
MODULE_DESCRIPTION("Led platform driver");9 G, }; q4 `2 f$ n' y
MODULE_AUTHOR("Tronlong");
- ^4 H% w/ j7 s. k* hMODULE_LICENSE("GPL");
( H  o8 p4 ~7 W: U, ~' v& _) D) W& p2 i2 B+ T  u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 16:58 , Processed in 0.045484 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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