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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 o/ V) `. a0 S#include <linux/init.h>
0 r3 |# g6 ]; y6 r#include <linux/module.h>
6 B  J7 n7 b7 i, }* }2 ~#include <linux/kernel.h>
/ s3 N3 m0 q! N0 q4 w#include <linux/types.h>$ h3 r9 l) B& d$ H  v9 s7 |6 \% `
#include <linux/gpio.h>- P! `* A, ~8 \* v" U2 H' I' t& d& S
#include <linux/leds.h>
; z& E: m" l% T- g* o#include <linux/platform_device.h>% o6 d" k6 Y* c# j- g

3 }) g- W3 _' [1 O8 P#include <asm/mach-types.h>
/ A) B$ \6 u7 |6 H" l#include <asm/mach/arch.h>0 L6 I  M/ W! D2 `* R- N& i
#include <mach/da8xx.h>
$ W$ p3 L5 T6 s2 J2 {* x$ D9 D#include <mach/mux.h>( z6 I) P2 S" x7 p
% j% F9 F, i& ]. L6 Z( P) j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 p& I" g  D* Q% D1 N5 ~( v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( ^" v- b% l6 c, {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 O, u; L+ O# V* m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" f4 L  c4 A  V' j2 R
% n9 P6 |1 k5 \; h* O2 x9 \/* assign the tl som board LED-GPIOs*/
: N: \5 w0 ~1 v2 Q: [( P" Wstatic const short da850_evm_tl_user_led_pins[] = {* A5 u/ H% j* p$ i+ f0 J: B
        /* These pins are definition at <mach/mux.h> file */
3 i3 K2 s6 c4 `- A        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 g( ?# y6 F$ V
        -1- S1 ?$ i! a) V; v0 l- d4 ?
};
- t! |& p2 R: R- U0 _9 P% |
2 x/ r: A  g7 z! Rstatic struct gpio_led da850_evm_tl_leds[] = {& k3 W* ~% |5 W8 a! x! [0 k
        {8 H5 i' Q# B2 V! B0 l
                .active_low = 0,5 a  Q; p# v6 c* @" r
                .gpio = DA850_USER_LED0,
2 n, {3 l) T9 U# H! T6 _                .name = "user_led0",
: T! F+ X- Y" r! M* X8 e: m                .default_trigger = "default-on",6 E* p' t9 v! g
        },: p; {. V: e4 j# @8 N& v2 y1 x! W
        {
9 q5 _) |8 r7 r7 S2 b, L- S5 e: a; k                .active_low = 0,* K: U& p1 S5 \2 e9 Z  ~
                .gpio = DA850_USER_LED1,5 U  q# u5 p& c- T4 k1 N0 M, e
                .name = "user_led1",
) C/ J% G8 @/ r6 w1 o                .default_trigger = "default-on",
  K* Y& u  O4 J+ ]        },
4 C4 W6 n: r+ A. {' x+ L        {
  V# p6 B" w5 q# k$ X, ^2 P: t                .active_low = 0,5 a% \) n# m1 g- [1 ?
                .gpio = DA850_USER_LED2,- d( x- G; k, n" M( F0 y- H
                .name = "user_led2",
. e; t% c. ]8 t+ ]- c  _- @0 ^                .default_trigger = "default-on",. T, y, z/ z. A
        },
: w* V1 i  g0 |$ c7 j! Y        {
  [) D% ?( [" q! X) E( O                .active_low = 0,+ I) {3 x2 c, I3 {
                .gpio = DA850_USER_LED3,
" K6 E' ]! J. `4 x8 V( Z                .name = "user_led3",& z+ Z, l5 r3 K
                .default_trigger = "default-on",
4 |- H4 s2 \/ b# N0 [9 ?2 N6 Y        },5 y" w# u) \  E3 _- U8 c
};4 }* k+ Z' }: `+ l6 m% X/ _$ |
2 O) ?! A) r) {7 w. p0 Q) v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 o5 n. F* v6 ^5 a5 \0 y: X
        .leds = da850_evm_tl_leds,
0 d/ X8 W. z" m* `: z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- s/ c% Y+ u6 z/ B# T};$ R" H5 g( q/ I$ r* g$ o
  d8 ?9 y* n, Z  r: F# u/ W
static void led_dev_release(struct device *dev)) a; P- Q2 E0 I' V0 J! ~- M
{: j" i8 P+ K; }: ]# C7 r
};1 `; x% I# W$ V, i8 T- ?0 ^" _& a4 k, o9 k
* d; s. p# G& F6 J9 U6 u
static struct platform_device da850_evm_tl_leds_device = {0 p7 r7 P, z# e2 T2 G1 \
        .name                = "leds-gpio",! d, H. X1 e, a2 y' ?. ~" z3 `
        .id                = 1,/ C, O2 T( w1 q; y, [* k" O
        .dev = {$ _1 f/ q& s& G. v, Q/ m
                .platform_data = &da850_evm_tl_leds_pdata,1 R; @# T1 s) e: z0 v  a
                .release = led_dev_release,
) o- l" u; ~# H  L! X4 R) o. k        }
/ E" s. o+ x5 f" ]1 _* w};
; r" o' u) s, a; I# k9 Q; L, O  p1 x! v! |7 ^1 ~
static int __init led_platform_init(void)
" Q' F2 c' R% E5 T: x: u& C- n{
. u  C7 r; j% z: a& C4 q6 Y        int ret;
( ^& l  i3 B5 Y5 n2 n2 b+ N* }) F#if 0
1 {- |# S" ]& F2 s0 Y/ y4 U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. g& D1 X0 q; o, B6 h# }/ V        if (ret)
) E) E2 t& y# U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 B) n9 ?# ^9 ?! A1 m. U- O' `
                                "%d\n", ret);  g) v# A! N$ s' s
#endif& X6 h1 n3 `7 K& Y: b+ `" r
        ret = platform_device_register(&da850_evm_tl_leds_device);, h5 r6 @7 E/ m  s4 m; m; x. V
        if (ret)/ v& [  o$ I" n0 m
                pr_warning("Could not register som GPIO expander LEDS");
9 Y# T. X/ N. R, ]/ m        else. E- v. }$ W: |0 A
                printk(KERN_INFO "LED register sucessful!\n");
  u) }( s/ U. c6 @
7 C0 H* s3 g0 P5 X        return ret;
. O% V2 ?8 S  t3 {0 z$ c}, V) Y/ s( j2 Y1 f2 q8 E! C

5 K* G/ B) ]& _! ystatic void __exit led_platform_exit(void)
% x7 ~+ F# w7 e{
  y/ H% g+ `& p) n* K5 e4 y        platform_device_unregister(&da850_evm_tl_leds_device);3 W( L9 _3 Z: j) z! o0 I8 X% K# Y* Z
1 Z. t% \$ c9 B; y5 g5 h0 b$ t
        printk(KERN_INFO "LED unregister!\n");
  z1 z# D" j: x/ v  b/ \7 E}/ J( g7 [1 P2 R

; ], |) p7 m: @; |- E* L, P! Umodule_init(led_platform_init);- w& x: \6 u5 B6 R5 `
module_exit(led_platform_exit);
! V) @" B; r6 {9 O% l) |& ~1 l" t  ~, {2 \7 I+ l
MODULE_DESCRIPTION("Led platform driver");" p6 _" b. x5 ~8 n% w# C9 _
MODULE_AUTHOR("Tronlong");
$ `2 K7 i6 n) f# UMODULE_LICENSE("GPL");
' x3 \' N6 g# M: q; y$ d. r$ P/ O2 m& f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 10:08 , Processed in 0.039460 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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